私は、cの2次元配列のメモリレイアウトがどのように機能するかを調べようとしています。特に文字列の配列。行サイズが自動的に最長の文字列のサイズに一致するように設定されている2次元文字列配列のCメモリレイアウト
char *states[] = {
"California", "Oregon",
"Washington", "Texas"
};
のような割り当てを行うとき、私はそれがthis site
を読んだ後に動作する方法を知っているが?
私は次のコードを使用してそれを理解しようとしましたが、まだそれを取得しません。
int main(){
char *test[] = {
"0", "12",
"345", "6789"
};
int i = 0;
int j = 0;
for (i=0; i<10; i++){
for (j=0; j<10; j++){
printf("%d,%d: ", i,j);
printf("%c\n", test[i][j]);
}
}
return 0;
}
私はすべての行が同じ大きさを持つべきであるという感覚を持っていますが、配列を横断するとき、次の文字列が単一の空白の直後に開始しますように思えます。
ありがとうございます!