質問: malloc(sizeof *arr[i] * (LENGTH + 1)); strcpy(arr[i], " "); } } ``` ### 補足情報(言語/FW/ツール等のバージョンなど)
回答: はじめまして char c; と宣言した場合、c は文字を格納する領域です。 c = 'A'; とすると、c の領域に A という文字を格納します。 char *pc; と宣言した場合、pc は文字を格納する領域の ポインタ(アドレス)を格納するための領域です。 pc = &c; とすると最初に宣言した c の領域へのポインタを pc という変数に格納します。 話を簡単にするために、ポインタのサイズを2バイト として話を進めます。 この場合で、c が例えば、 0x1000 番地に1バイトで メモリに確保されたと仮定します。 このメモリの 0x1000 番地には 'A' が格納されます。 この場合で、pc が例えば、0x2000 番地に2バイトで メモリに確保されたと仮定します。 メモリの 0x2000 番地には、0x1000 が格納されます。 ここまで理解できますか?