我有下面的代碼,我不知道str2
和str3
的執行有什麼區別,它們都給出了相同的結果,哪一個更容易出錯? 編輯:當我測試str2
的表示時,我發現有一次我的代碼崩潰,因爲str2
是一個糟糕的指針!char []和char *之間的區別做strcpy時
/* strcpy example */
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "Sample string";
char str0[] = "Sample String and more";
char* str2;
str2 = new char[40];
char str3[40];
strcpy (str2,str1);
strcpy (str3,str1);
strcpy (str2,str0);// crash happened here str2 is bad pointer!!!
printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
delete str2;
return 0;
}
定義「更容易出錯」。 – immibis
'str2'更容易出錯(例如,在這種情況下,您忘記了刪除它),並且速度可能更慢 –
請標記爲C++而不是C,str2 = new char [40];不是C – BobRun