当前位置: 技术问答>linux和unix
莫名其妙的C语言错误
来源: 互联网 发布时间:2016-03-11
本文导语: for(;url[p]!='/'&&url[p]!='';p++) strncat(hostaddr,&url[p],1);//OK 没有出现错误 hostaddr[p]=''; ...
for(;url[p]!='/'&&url[p]!='';p++)
strncat(hostaddr,&url[p],1);//OK 没有出现错误
hostaddr[p]='';
for(;url[p]!='';p++)
strncat(htmladdr,&url[p],1);//出现Program received signal SIGSEGV, Segmentation fault.错误
htmladdr[p]='';
我差了 url长度为24 出错是 p为14 这让人很郁闷 怎么回事??
strncat(hostaddr,&url[p],1);//OK 没有出现错误
hostaddr[p]='';
for(;url[p]!='';p++)
strncat(htmladdr,&url[p],1);//出现Program received signal SIGSEGV, Segmentation fault.错误
htmladdr[p]='';
我差了 url长度为24 出错是 p为14 这让人很郁闷 怎么回事??
|
在对url数组初始化的时候做一个
memset(url,0,sizeof(url);
还有一个就是
char *httphead = new char(1024);
没有申请空间,就往里面放数肯定会有点问题。
memset(url,0,sizeof(url);
还有一个就是
char *httphead = new char(1024);
没有申请空间,就往里面放数肯定会有点问题。
|
空指针引用的问题。
如果是C不是C++的话,需要
char *httphead;
int size = 100; /* the size of httphead */
httphead = (char *)malloc(size * sizeof(char));
用完记得free(httphead);
如果是C不是C++的话,需要
char *httphead;
int size = 100; /* the size of httphead */
httphead = (char *)malloc(size * sizeof(char));
用完记得free(httphead);