次のコードがどのように機能するのか疑問に思いました。
#include <iostream>
using namespace std;
int main()
{
char* buffer = new char(NULL);
while(true)
{
cin >> buffer;
cout << buffer;
cout << endl;
}
return 0;
}
任意のサイズの任意の量のテキストを入力でき、それが印刷されて返されます。これはどのように作動しますか?動的にスペースを割り当てていますか?
また、スペースを入力すると、テキストの次のセクションが新しい行に出力されます。gets(buffer);
ただし、これは(安全ではない)を使用して修正されます。
また、このコードは「合法」ですか?