2x2のchar行列を関数に渡そうとしていますので、その内部の値を変更できます。私のコードでは、変更される唯一の値は行列の最初の行です。行1は変更されません。コンソールで2次元配列を参照Cで渡して値を変更する
、私の結果は
C[0] = ab
C[1] =
だから、C [1]は、私の機能で更新されていないされて、何が起こっているかを把握するために私を助けてください。
ここでは、関数のプロトタイプがあるべきC. でマトリズを受け取る関数を宣言する方法ではありませんコード
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void changeMatrix(char (*matrix)[2][2]){
strcpy(*matrix[1], "cd");
strcpy(*matrix[0], "ab");
}
int main(){
char C[2][2];
changeMatrix(&C);
printf("C[0] = %s \n", C[0]);
printf("C[1] = %s \n", C[1]);
}
文字列には3文字分のスペースが必要です.2文字+ '\ 0'(文字列ターミネータ)です。 –
それだけです。どうもありがとうございました。しかし今、ポジション1にはごみがあります。 C [0] = ab C [1] =t cd –
すべてのポインタの必要はありません。すべての '*'と '&'を削除してください。 –