【发布时间】:2015-11-08 16:57:02
【问题描述】:
我有这个代码
char* chars = (char*) malloc (sizeof(char));
memcpy(chars, "", 0);
char* hey = "hello doit";
chars = (char*) realloc (chars, 10);
memcpy(chars, hey, 10);
printf("string: %s\n", chars);
free(chars);
我的内存出现错误
Address "xxxxxxx" is 0 bytes after a block of size 10 alloc'd
我做错了什么?
【问题讨论】:
-
我没有发现任何问题,看起来 Valgrind 有问题。
-
对我有用,valgrind-3.10.1 说“所有堆块都被释放了——不可能有泄漏。”如果你分享了完整的程序,结果可能不一样?
-
我没有泄漏,但我确实得到了这个错误.. 在 valgrind 运行的中间。
-
也适用于开发分支,3.11。 see results here。未检测到泄漏。
-
好的,我隔离了这个问题。当我打印字符串时,它给了我这个错误。
标签: c string memory memory-leaks valgrind