Zel*_*ahl 3 c arrays pointers memory-management allocation
我有一个简单的问题,但答案似乎很难找到:
如何在C(不是C++)中创建一个真正的2D数组,动态调整大小(编译时未知的大小),而不是堆上的指针数组,以便我可以将该分配放入单独的函数中并返回分配数组,没有收到任何警告gcc -Wall?
我在SO和其他论坛上发现了很多其他问题,但答案都有一些缺陷:
a[y][x].我希望我的数组也有一个真正的2D数组的内存布局.实现这种真正2D阵列分配的正确方法是什么?
编辑#1: 分配方法的返回类型可以是指向已分配数组的指针.
您不需要特殊功能.就这样做吧
double (*A)[n][m] = malloc(sizeof *A);
Run Code Online (Sandbox Code Playgroud)
作为C99的,这里n和m可以是你想要的任何正整数表达式.
这样的东西是指向VLA,可变长度数组的指针.
| 归档时间: |
|
| 查看次数: |
638 次 |
| 最近记录: |