strcpy複製'\0'

晚餐吃什麼發表於2018-11-18

今天發現了這樣一個問題:

	char *arr = new char[10];
	strcpy(arr, "wangzhaaaa");
	delete []arr;

執行這段程式碼將會報錯,因為strcpy複製char*時會複製'\0',所有在new 字元陣列的時候應該預留'\0'的空間,否則到時候delete的時候會報錯!程式碼改成這樣即可

	char *arr = new char[11];
	strcpy(arr, "wangzhaaaa");
	delete []arr;

這是個比較嚴重的問題

相關文章