我想知道下面的代码是如何工作的。
#include <iostream>
using namespace std;
int main()
{
char* buffer = new char(NULL);
while(true)
{
cin >> buffer;
cout << buffer;
cout << endl;
}
return 0;
}
我可以输入任意数量的任意大小的文本,它会将其打印回给我。这是如何运作的?它是否为我动态分配空间?
此外,如果我输入一个空格,它将在新行上打印下一部分文本。然而,这可以通过使用gets(buffer);
(unsafe) 来解决。
另外,这段代码“合法”吗?