你能向我解釋爲什麼在這個代碼中第一個元素是二維數組?代碼結果的說明
#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