次のように、配列要素ごとに 4 バイト (32 ビット) になると予想される unsigned long の配列があります。
unsigned long giantbuffer[1024];
ただし、配列要素のアドレスを出力すると、次のようになります。
printf("%X\n", &giantbuffer[0]); --> gives ab8470
printf("%X\n", &giantbuffer[1]); --> gives ab8478
また、
sizeof(giantbuffer) gives 8192, and sizeof(giantbuffer[0]) gives 8.
つまり、配列要素ごとに 8 バイトです。これはシステムのアーキテクチャに依存するものですか?私はCが初めてなので、これは明らかなことでしょうか? これは、私のポインター演算に大混乱をもたらします。「ch」を使用して、構文のインタープリター コマンドライン スタイル チェックなどを行っています。これはそのプログラムの問題でしょうか?