为什么不能用双指针来表示二维数组呢?为什么不能用双指针来表示二维数组呢?arr[2][5] = {"hello","hai"};**ptr = arr;在这里,为什么双指针(*PTR)不能在这个示例中工作?
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
int array[10][6];
int **array2 = malloc(10 * sizeof *array2);for (int i = 0; i < 10; ++i) array2[i] = malloc(6 * sizeof **array2);
array
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _| | | | | | | | | | | | | ..............| | | (10*6 elements of type int) - - - - - - - - - - - - - - - - - - - - - -< first row >< second row> ...
array2
_ _ _ _ _ _ _ _ _ _ | | | | | | | | | | | (10 elements of type int *) - - - - - - - - - - | | .... | _ _ _ _ _ _ | | \-->| | | | | | | (6 elements of type int) | | - - - - - - | | | | _ _ _ _ _ _ | \ -->| | | | | | | (6 elements of type int) | - - - - - - | | | _ _ _ _ _ _ \ -->| | | | | | | (6 elements of type int) - - - - - -
array[x][y]
*((int *)array+x*6+y)
array2[x][y]
*(*(array2+x)+y)
array
row * number_of_columns_in_one_row + column
.
NULL
array
int **
int
array
array
int [6]
int [6]
int (*p)[6] = array;
开心每一天1111
TA贡献1836条经验 获得超13个赞
void matrix_set(double *first, size_t row_size, size_t x, size_t y, double value){ first[y * row_size + x] = value;}
- 3 回答
- 0 关注
- 832 浏览
添加回答
举报
0/150
提交
取消