这个C代码在代码块中不断给我一个分段错误

这个C代码在代码块中不断给我一个分段错误,c,string,split,segmentation-fault,runtime-error,C,String,Split,Segmentation Fault,Runtime Error,这是我一直试图解决的问题,但失败了。你为什么这么认为 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char str[500]; sprintf(str, "int cube = %i;", 29); char *ptr; strtok_r (str, "=", &a

这是我一直试图解决的问题,但失败了。你为什么这么认为

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

        int main(void)
    {
        char str[500];
        sprintf(str, "int cube = %i;", 29);
        char *ptr;
        strtok_r (str, "=", &ptr);
        printf ("'%s'  '%s'\n\n", str, ptr);
        char temp[500];
        sprintf(temp, "%s", ptr);
        int conditional = atoi(temp);
        puts(conditional);
        return 0;
        }
问题在于:

puts(conditional);
puts函数需要一个指向字符串的字符*。您正在传递一个int。这是未定义的行为

该int的值被解释为可能没有指向有效内存位置的指针,从而导致崩溃

如果要打印int,请使用printf和%d格式说明符

printf("%d\n", conditional);

请展示您迄今为止的研究/调试工作。请先阅读第页。使用strtok_r.putsconditional的返回值;->printf%d\n,有条件的;