你能向我解释为什么在这个代码中第一个元素是二维数组?代码结果的说明
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i,j;
int **p = (int **)malloc(2 * sizeof(int *));
p[0] = (int *)malloc(2 * sizeof(int));
p[1] = p[0];
for(i = 0; i < 2; i++)
for(j = 0; j < 2; j++){
printf("i=%d & j=%d\t",i,j);
p[i][j] = i + j;
printf("p[%d][%d]=%d\n",i,j,p[i][j]);
printf("this is the result of the first element %d\n",p[0][0]);
}
printf("this is the result %d\n",p[0][0]);
return 0;
}
结果是:
I = 0 & J = 0 P [0] [0] = 0
这是第一个元素0
的结果i = 0 & j = 1 p [0] [1] = 1
这是第一个元素的结果0
I = 1 & J = 0 P [1] [0] = 1
这是第一个元素的结果1
I = 1 & J = 1个P [1] [1] = 2
这是第一个元素的结果1
这是结果1点
按关闭该窗口...
你打算'p [0]'和'p [1]'引用*相同的单数行吗? – WhozCraig 2015-02-23 23:04:32
最有可能与您的问题没有关系,但[**不会投出'malloc()'**](http://stackoverflow.com/a/605858/3488231)的结果。 – ace 2015-02-23 23:05:07