VS(リリース)では、次を実行します。
int main(void)
{
char b[] = "123";
char a[] = "1234567";
printf("%x %x\n", b,a);
return 0;
}
a の mem アドレスは b+3 (文字列の長さ) であることがわかります。これは、メモリがギャップなしで割り当てられていることを示しています。これにより、メモリの使用量が最小限に抑えられます。だから、私は今、すべてのコンパイラがそうするだろうと信じています。ここでこの推測を確かめたい。誰かが私にもっと正式な証拠を教えてくれますか、それとも私の推測が偶然に基づいていると教えてくれますか.