gpt4 book ai didi

c - snprintf() c 中的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:15 26 4
gpt4 key购买 nike

我正在尝试创建一个返回带有当前日期和时间的 char * 的函数。但是我在使用 snprintf 时遇到了段错误。这是代码的一部分。

int buf_size = 20;
char *n = NULL;
snprintf(n, buf_size , "%d-%d-%d %d:%d:%d\n", 1900+st.tm_year,
st.tm_mon+1, st.tm_mday, st.tm_hour, st.tm_min, st.tm_sec);

最佳答案

snprintf 不会为您分配缓冲区。您将 n 设置为 NULL,因此它会愉快地尝试写入不存在的内存位置并崩溃。

您想使用 asprintf反而。如果你的C库没有asprintf,可以使用mallocsnprintf来实现。我将这样做作为练习。

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

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