当我尝试访问字符串中的字符并将其添加到另一个字符串时,我不断收到此错误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++;
}
}
答案 0 :(得分:0)
char* initials = "";
不是char initials[SOME_SIZE] = {0};
你没有分配任何内存,你只需要一个指针并开始将一些字符写入内存,这不应该被写入。一般情况下,分段错误会告诉您正在修改一条您不允许的内存。这就是你的情况。