'int ** arr [5]'を作成しようとしていますが、各セルに 'int * array'が含まれていて、それぞれ 'int * array'のサイズが異なります。セルの1つを印刷しようとしているときはいつも、最初の番号だけが印刷されますが、どうしてですか?どうすれば配列全体を印刷できますか?ポインタへのポインタ配列
#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]);
}
から
sortNumber
変更印刷されているので。ループが必要です。 – OldProgrammerコードにはいくつかの問題があります。 「ポインタ」を読んでください。 –
'* arr1'は' int * '型で、' bigArr'を初期化するために使われる他の式も同じです。代わりに、 '&arr1 [0]'を使った場合(intポインタへのポインタや 'int **'へのポインタ)、それはうまくいくでしょう。ループのアイデアに関連する質問は次のとおりです:配列が 'sortNumber'に渡された場所を知る方法' itemCount'パラメータがなく、 'bigArr'が[sentinel value](https: //en.wikipedia。org/wiki/Sentinel_value)、例えば 'NULL'ポインタ。 –