使用指向数组的指针打印动态分配的二维数组的值



我试图动态分配一个名为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

相关内容

  • 没有找到相关文章

最新更新