问题描述
我正在使用 snprintf()
将字符串写入缓冲区。
#define MAXLEN 256
char line[MAXLEN];
char buf[MAXLEN];
snprintf(buf,sizeof(buf),"Hi%s",line);
编译时提示警告
directive writing up to 256 bytes into a region of size 254
有没有更好的方法来解决这个问题?我不想使用 malloc(...)
或类似的动态分配函数。
解决方法
我想要第二个结果。
然后您必须确保目标缓冲区足够长以容纳它。例如:
char line[MAXLEN];
char buf[MAXLEN + 2];
这样 buf
可以容纳整个 line
和两个 "Hi"
字符。