我正在尝试创建一个“int** arr[5]”,其中的每个单元格都包含一个“int* 数组”,每个“int* 数组”具有不同的大小。每当我尝试打印其中一个单元格时,它只打印其中的第一个数字,为什么会发生这种情况?我怎样才能打印整个数组?
#include <stdio.h>
#include <stdlib.h>
void sortNumber(int** arr[]);
int main(void)
{
int i = 0;
int* arr1[3] = { 2, 5, 8 };
int* arr2[2] = { 1, 7 };
int* arr3[6] = { 5, 1, 8, 3, 7 ,12 };
int* arr4[4] = { 3, 9, 4, 29};
int* arr5[5] = { 4, 11, 17, 23, 25 };
int** bigArr[5] = {*arr1, *arr2, *arr3, *arr4, *arr5};
sortNumber(bigArr);
system("PAUSE");
return 0;
}
void sortNumber(int** arr[])
{
printf("%d", arr[1]);
}
最佳答案
所以您正在使用二维数组。您需要以 arr[i][j] 格式打印它。
for(int i = 0; i < THREE; i++)
printf("%d", arr[THREE][i]);
关于c - 指向指针数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36520046/