我已经实现了一个返回字符串的函数。它接受一个整数作为参数 ( age
),并返回一个格式化的字符串。
一切都运行良好,除了我有一些疯狂的内存泄漏。我知道 strdup() 是造成这种情况的原因,但我试图研究一些修复无济于事。
我的代码是:
const char * returnName(int age) {
char string[30];
sprintf( string, "You are %d years old", age);
return strdup(string);
}
Valgrind 的输出是:
==15414== LEAK SUMMARY:
==15414== definitely lost: 6,192 bytes in 516 blocks
==15414== indirectly lost: 0 bytes in 0 blocks
==15414== possibly lost: 0 bytes in 0 blocks
==15414== still reachable: 0 bytes in 0 blocks
==15414== suppressed: 0 bytes in 0 blocks
非常感谢解决此内存泄漏问题的任何帮助。