gpt4 book ai didi

c - perror 段错误

转载 作者:行者123 更新时间:2023-11-30 18:26:44 25 4
gpt4 key购买 nike

代码:

void w(char* c, int i)
{
char * t;
sprintf(t, "%d", i);
perror(c);
perror(t);
}

int main(void)
{
w("qwe", 5);
return 0;
}

导致段错误,但是

int main(void)
{
perror("qwdasda");
w("qwe", 5);
}

有效。为什么?我的问题不符合您的质量标准。

最佳答案

这是您的段错误:

char *t;
sprintf(t,"%d",i);

在此代码中,t 输入到 sprintf()。但是,t 尚未初始化,因此 sprintf() 会在您的内存中乱写乱画。几乎不建议使用 sprintf(),而是使用 snprintf():

char buf[32];
snprintf(buf, sizeof(buf), "%d", i);

关于c - perror 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com