[英]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.