ポインターを使用して、2D 配列を 1D 配列として処理しようとしています (これが私の理解ではメモリ内にあるためです)。私はそれを持っていると思っていましたが、「a」のASCII値に追加しているだけであることがわかりました(そして、abcghidefjklの代わりにabcdefghijklを印刷しています)。
abcghidefjkl を出力するように printf ステートメントを書き直すにはどうすればよいですか? また、int と double を使用してそれを行うにはどうすればよいですか (つまり、data2 と data3 を使用)。
int main()
{
int i = 0;
char data[4][3] = { {'a','b','c'},{'g','h','i'},{'d','e','f'},{'j','k','l'}};
int data2[4][3] = { {1,2,3},{7,8,9},{4,5,6},{10,11,12}};
double data3[4][3] = { {1,2,3},{7,8,9},{4,5,6},{10,11,12}};
for(i=0;i<12;i++)
{
printf("%c\n", **(data)+i*sizeof(char));
}
return 0;
}
ありがとう!