我试图理解以下字符串传递如何适用于我的错误字符串。这个示例是我从一个更大的源代码中制作的。
我的问题是,为什么我不需要为包含我的错误消息的字符数组专门分配内存?我认为我需要为字符串分配一些内存,并使用err指针指示该内存的开始。
这与它是一个“const char *”有关还是因为我在stderr打印?
我可能没有恰当表达问题,这就是为什么搜索没有帮助我理解这个问题的原因。
我的问题是,为什么我不需要为包含我的错误消息的字符数组专门分配内存?我认为我需要为字符串分配一些内存,并使用err指针指示该内存的开始。
这与它是一个“const char *”有关还是因为我在stderr打印?
我可能没有恰当表达问题,这就是为什么搜索没有帮助我理解这个问题的原因。
const char * my_function(int a)
{
if (a != 1)
return "a doesn't equal 1!"
else
return NULL;
}
int main(int a)
{
const char *err;
err = my_function(a);
if (err)
fprintf(stderr, "Message = %s\n",err);
return 1;
return 0;
}