簡體   English   中英

在C中串聯字符串時出錯

[英]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);

第二種情況是,如果mailNULL

char  *mail = NULL ; 
strcat(url, mail) ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM