考虑一下这段代码:
#define MAX 4
............
............
int** ptr = (int**)malloc(sizeof(int*)*MAX);
*ptr = (int*)malloc(sizeof(int)*MAX);
// Assigned values to the pointer successfully
Run Code Online (Sandbox Code Playgroud)
如何foo()使用ptras参数调用?foo()原型已声明如下:
void foo(int arr[][MAX]);
Run Code Online (Sandbox Code Playgroud)
您不能将ptr参数作为参数传递给该foo函数.
二维数组(数组数组)的内存布局与数组指针数组的内存布局完全不同.
更改函数签名以接受int**(也可能是大小信息),或者将其定义ptr为适当大小的二维数组.
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |