我已經寫了一個代碼來打印2名工人的名字,但是卻打印出垃圾。cout corrupt char *
cout << "highest salary: " << highestSalary.getID() << " " << highestSalary.getName() << endl;
cout << "hardest worker: " << mostHours.getID() << " " << mostHours.getName();
功能的getName()在工人類定義爲:
char* Worker::getName()
{
char temp[20];
int i;
strcpy(temp, name);
return temp;
}
經歷這對我試圖把highestSalary.getName()的值A版本的char *臨時內部調試器,價值是我的預期,讓我們說「bob」,但在cout之後價值是「」,並且cout印刷垃圾。
此行爲是SO未定義;) – 2013-03-10 13:11:49
提示:'的std :: string'是極大的幫助,可以說,是必須做的一切字符。 – Zeta 2013-03-10 13:12:46
爲什麼你不能friggin'谷歌呢?認真......這是每天兩次提問......難道你不能找到以前的問題之一嗎?爲什麼? *爲什麼?* ***爲什麼?*** – 2013-03-10 13:12:58