0

動的配列に関する宿題を始めています。まず、2 次元配列があります。

int initializeInfo[3][4] ={{77,68,0,0},{96,87,89,78},{70,90,86,0}};

ポインターを使用して保存します。

int **ptr = (int**)malloc(3*sizeof(int));
int size = 0;
for(int i =0;i<3;i++){
    addInitiazeInfo(ptr,initializeInfo[i],size);
}

関数 addInitiazeInfo は次のとおりです。

void addInitiazeInfo(int**& ptr, int arr[],int& size){
    ptr[size] = (int*)malloc(4*sizeof(int));
    if(ptr[size] == NULL){
        return;
    }
    ptr[size] = arr;
    size++;
}

走行OKです!2 次元配列は、ptr ポインターによって格納されます。ここに画像の説明を入力

そして、新しい行を追加したいのですが、reallocが必要だと思うので、次を試します:

int arr[] = {3,4,5,6};
size++;            
ptr = (int**)realloc(ptr,size * sizeof( int ) );
ptr[size-1] = (int*)malloc(4*sizeof(int));
ptr[size-1] = arr;

しかし、これは私の問題だと思います。出力では、それがどのように発生したかを知るのが難しくなります。 ここに画像の説明を入力

助けてください、みんなありがとう

4

1 に答える 1