strcpy
C语言标准库函数
原型声明:
extern char *strcpy(char *dest,const char *src);
头文件:string.h
功能:把从src地址开始且含有NULL结束符的字符串赋值到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
项目工程中的一个用例:
- memset(nGblInfo->sdns, 0, sizeof(nGblInfo->sdns));
- strcpy(nGblInfo->dns,strtok(value,","));
- strcpy(nGblInfo->sdns, strtok(NULL,",");
执行工程的时候发现,会出来segmentation fault
通过调试发现,改成如下这样ok了
- memset(nGblInfo->sdns, 0, sizeof(nGblInfo->sdns));
- strcpy(nGblInfo->dns,strtok(value,","));
- if(strtok(NULL,",") != NULL)
- strcpy(nGblInfo->sdns, strtok(NULL,","));
以上得出结论是strcpy函数的scr参数不能为空,当然dest更不能为空,但是很好奇的是:
strcpy标准的库函数,应该对NULL作判断了吧,怎么会出现段错误,至少抛出异常啥的提示信息呀
阅读(2257) | 评论(0) | 转发(0) |