我有一个用于形成HTTP请求字符串的函数。运行时,malloc返回一个错误:
malloc():无效大小(未排序)
流产
下面是我创建的函数,无法理解返回错误的原因
char*集成请求(char*函数、char*下、char*上、,
字符*段,字符*线程){
char*start=“GET/integrate/”;;
char*bs=";/";;
char*end=“HTTP/1.1\n\n”;;
char*request=malloc(sizeof(char)*strlen(start+1));
strcpy(请求、启动);
strcat(请求,更低);
strcat(请求,bs);
strcat(请求,上限);
strcat(请求,bs);
strcat(请求、段);
strcat(请求,bs);
strcat(请求、线程);
strcat(请求,bs);
strcat(请求、功能);
strcat(请求,结束);
返回请求;
}
您分配的内存太少。尝试:
char*request=malloc(strlen(开始)+
斯特伦(下)+
斯特伦(理学士)+
斯特伦(上)+
斯特伦(理学士)+
strllen(段)+
斯特伦(理学士)+
螺纹(螺纹)+
斯特伦(理学士)+
strllen(函数)+
斯特伦(理学士)+
1);
请注意,sizeof(char)始终为1,因此无需编写该值