【发布时间】:2009-07-20 19:11:47
【问题描述】:
我正在尝试使用 snprintf 添加两个字符串,但显然我不知道自己在做什么。
这里是代码块:
char * filename = NULL;
(void)snprintf (filename, sizeof(filename), "%s/%s",
PATH, FILE);
我也试过了:
char * filename = NULL;
(void)snprintf (filename, sizeof(PATH)+sizeof(FILE)+1, "%s/%s",
PATH, FILE);
PATH 和 FILE 是标题定义的字符串。有时,此代码有效,有时则无效。我确定这是某种内存问题,我做错了什么?
编辑: 我的问题是出于某种原因认为 snprintf 为您分配了内存。我接受了解决这个问题的答案,因为这是我真正的问题,但我决定使用编译时字符串连接,因为这是一个非常好的技巧。
【问题讨论】:
-
你没有分配任何内存来放置格式化的字符串。
标签: c string memory-management