[英]Error when concatenating strings in C
我是C語言的新手,我正在嘗試使用以下代碼在char數組中加入2個字符串:
char url[300];
strcpy(url, "http://example.com/script.php?email=example@example.com");
char * mail = lpObj->Email;
strcat(url, mail);
我在帶有Visual Studio的VPS上運行此程序,我的程序始終崩潰,並轉到帶有asm代碼的文件中。 lpObj->Email;
被分配,並且具有格式正確的字符串。
有人知道為什么會這樣嗎?
至少有兩種情況會導致錯誤,第一種情況是當mail
對於目標url
太大時。 我能夠獲得此代碼來seg fault
但實現溢出所需的長度可能有所不同:
char url[50];
strcpy(url, "http://example.com/script.php?email=example@example.com");
char *mail = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
strcat(url, mail);
第二種情況是,如果mail
為NULL
:
char *mail = NULL ;
strcat(url, mail) ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.