#include<iostream>
using namespace std;
int main()
{
cout<<"Enter\n";
char ch[0];
cin>>ch;
cout<<sizeof ch;
cout<<sizeof &ch;
cout<<"\n You entered \n"<<ch<<"\n";
return 0;
}
我使用g ++編譯器編譯C++程序。內存分配char ch
和char ch[0]
有什麼區別。 ch
可以接受一個字符,但ch[0]
可以接受很多字符(我放在qqqqqqqq)。爲什麼?另外爲什麼sizeof ch
返回0,而sizeof &ch
給出4,但ch
接受超過四個字符?C++中字符數組的內存分配
標準C++不允許零大小的自動存儲陣列。所以你必須使用編譯器擴展。 – juanchopanza
即使如此......您如何/爲什麼期望一個零大小的數組可以容納任何東西? – 2013-07-09 17:23:47
我這樣做只是爲了理解內存分配。如果我給ch [1],而不是ch [0],那麼也可以給出很多字符。我在Ubuntu 12.04 –