刷OJ的时候惊喜的发现,我竟然不会给二维数组动态分配内存。写了n年的代码了,竟然被这个难倒了!自惭形秽,难以言表。
方法一
先分配指针数组的内存,然后给数组中的每个int *
指针分配内存:
int **data, i;
data = (int *)malloc(sizeof(int *) * row);
for (i = 0; i < row; i++) {
data[i] = (int *)malloc(sizeof(int) * col);
}
数组的表现形式:
方法二
使用一维指针模拟成二维指针,分配row * col
个连续的元素,访问的时候模拟成二维指针访问:
data = (int *)malloc(sizeof(int) * row * col);
for (i = 0; i < row; i++) {
for (j = 0; j < col; j++) {
*(data + i * col + j) = i * j;
}
}
参考
此处评论已关闭