[英]Why the error in the c++ code while use cout/cin?
您正在將輸入讀入未初始化的字符緩沖區指針,基本上是將輸入轉儲到一些隨機的內存塊中,因此這是未定義的行為,它將崩潰。
您需要在使用之前初始化該緩沖區,或者,這里的C ++解決方案是使用字符串:
std::string name;
這將自動為您處理內存管理,並且不會遭受C固有的緩沖區溢出問題。
char* name;
是一個指針。 它需要指向一些內存。 當前它尚未初始化,因此它可以指向任何地方或任何地方。 這意味着當您這樣做時; std::cin>>name;
它會像寫入緩沖區一樣隨機寫入程序空間。 這是未定義的行為,可能會導致任何后果,包括在您的情況下正常工作或崩潰。 在c ++中,您可以使用std::string
讀入:
std::string name;
std::cin>>name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.