繁体   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