尝试使用strcat连接char和字符串时出现“分段错误”错误

时间:2017-10-08 18:31:54

标签: c

当我尝试访问字符串中的字符并将其添加到另一个字符串时,我不断收到此错误segmentation fault。代码如下。

提前致谢。

// function to find the initials of a name
void findInitials(char* name)
{
    char* initials = "";
    bool initialCreated = false;
    int n = 0;

    while(name[n] != '\0')
    {
        if(name[n] != ' ')
        {
            if(initialCreated == false)
            {
                //this is where I am facing the issue
                strcat(initials, &name[n]);
                printf("INITIAL: %c\n", name[n]);
                initialCreated = true;
            }

            if(name[n+1] == ' ')
            {
                initialCreated = false;
                n++;
            }
        }
        n++;
    }
}

1 个答案:

答案 0 :(得分:0)

char* initials = "";不是char initials[SOME_SIZE] = {0};你没有分配任何内存,你只需要一个指针并开始将一些字符写入内存,这不应该被写入。一般情况下,分段错误会告诉您正在修改一条您不允许的内存。这就是你的情况。