我试图动态分配一个名为array的二维数组,然后一个指针ptr指向该数组。现在,当我尝试使用指针打印数组值时,当我打印数组值时,我得到了垃圾值。我对指针不熟悉,所以如果有人指出我思考错误的地方,我会非常感激。
代码片段:
int (*ptr[2])[8][512]; int** array; array = (int**)malloc(8 * sizeof(int*)); for (int i = 0; i < 8; i++) { array[i] = (int*)malloc(512 * sizeof(int)); } ptr[0] = (int(*)[8][512])array; for (int i = 0; i < 8; i++) { for (int j = 0; j < 4; j++) { array[i][j] = i+j; } } for (int i = 0; i < 8; i++) { for (int j = 0; j < 4; j++) { cout<<"Val"<<((*ptr[0])[i][j])<<endl; } }
老实说,我不明白你关于先在堆栈上分配内存再在堆上分配内存的想法
int **(ptr[2]);
try this