pau*_*ons 4 c string segmentation-fault
为什么下面的代码给出了Seg.最后一行出错?
char* m=ReadName();
printf("\nRead String %s\n",m); // Writes OK
char* token;
token=strtok(m,'-');
Run Code Online (Sandbox Code Playgroud)
如上所述,读取字符串打印没有问题,但为什么不能拆分为令牌?
cod*_*ict 18
strtok修改了它的第一个参数,因此它应该是可修改的.
也许ReadName()返回一个指向只读char数组的指针.您可以向我们展示您的ReadName()函数.
如果这就是seg-faullt的原因,你可以在使用strdup函数将它传递给strtok之前创建char数组的副本,如:
char *copy = strdup(m);
token = strtok(copy,'-');
....
....
free(copy); // free the copy once you are done using it.
Run Code Online (Sandbox Code Playgroud)