【发布时间】:2016-05-07 16:04:25
【问题描述】:
我想从文件.txt 读入 C 中的内存。
我将txt 文件与源文件放在同一个位置,所以fileName 被指定为small_addressbook.txt
当我在 Eclipse 中(在 macbook 上)运行代码时,它总是打印 File not found,而在 Unix 中,我得到了 segmentation fault。
我尝试在 Unix 中运行 gdb 并收到以下错误报告:
Program received signal SIGSEGV, Segmentation fault.
__strncpy_sse2_unaligned ()
at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:666
666 mov %rcx, (%rdi)
【问题讨论】:
-
char entry[] = EMPTY_STRING;-->char entry[100];或char entry[100] = EMPTY_STRING; -
malloc(sizeof aNode)-->malloc(sizeof *aNode) -
aNode = (*create)();: 内存泄漏 -
对不起,你能解释一下这种情况下的内存泄漏吗?
-
因为它被覆盖了。