我正在编写一个库,并希望使其完全不依赖于特定的资源,这也意味着该库应该与用户提供的内存分配函数一起工作。该库允许用户设置自己的错误处理函数,当出现错误消息时,将调用该函数并将该错误消息作为参数传递,例如:
typedef void (*error_handler)(const char* msg);
库代码会自行准备错误消息,就像这样(省略了当消息格式化失败的情况):
char buf[BUF_SIZE];
snprintf(buf, BUF_SIZE, "Oops found at file '%s' line %d", __FILE__, __LINE__);
但是,我能确定 snprintf 不会使用 malloc 分配更多的内存来进行内部操作吗?毕竟,我的 Linux 系统手册对此保持沉默。
char* buf[BUF_SIZE];
或者你的意思是char buf[BUF_SIZE];
? - Sourav Ghoshmalloc
,只要它不造成内存泄漏,你为什么还要担心呢? - Blagovest Buyukliev