修剪空间C时出现SEGFULT
你好,我有这样的代码(在stackoverflow上找到) 大体上修剪空间C时出现SEGFULT,c,string,C,String,你好,我有这样的代码(在stackoverflow上找到) 大体上 int main(int argc, char **argv){ char *t; t = trim_whitespace(argv[1]);; printf(";%s;\n",t); free(t); } 但现在它失败了 *** Error in `./a.out': free(): invalid pointer: 0x00000000020dd014 *** Aborted (cor
int main(int argc, char **argv){
char *t;
t = trim_whitespace(argv[1]);;
printf(";%s;\n",t);
free(t);
}
但现在它失败了
*** Error in `./a.out': free(): invalid pointer: 0x00000000020dd014 ***
Aborted (core dumped)
如果我跑
trim_whitespace(argv[1]);
一切正常,我有我想要的结果,它返回修剪过的字符串,但若我运行这样的代码
trim_whitespace("abc");
它将失败,与segfault联机
*(end+1) = '\0';
请帮我解决我的问题。非常感谢。
另外,这个函数从许多地方调用,是否可以更改smth内部的修剪空白?修剪空白(“abc”)代码>将尝试修改常量数据
“abc”
是一个常量,可以在常量空间中分配(即:内存中为只读访问保留的位置)。这是一个全新的问题,现在最好针对这个问题提出一个新问题(顺便说一句:因为trim_whitespace()deosn不一定返回分配的指针)
*(end+1) = '\0';