首先,这里是消息的valgrind给我(这只是一个错误,我得到了同样的信息多次)Valgrind的错误:大小为4的无效写入(但说错误是在无())
==25248== Invalid write of size 4
==25248== at 0x4024B3A: free (vg_replace_malloc.c:366)
==25248== by 0x8048F5E: sthread_free_ctx (sthread_ctx.c:86)
==25248== by 0x80489C1: sthread_user_exit (sthread_user.c:105)
==25248== by 0x804883C: dispatcher (sthread_user.c:40)
==25248== Address 0x41a6148 is 65,376 bytes inside a block of size 65,536 free'd
==25248== at 0x4024B3A: free (vg_replace_malloc.c:366)
==25248== by 0x8048F5E: sthread_free_ctx (sthread_ctx.c:86)
==25248== by 0x80489C1: sthread_user_exit (sthread_user.c:105)
==25248== by 0x804883C: dispatcher (sthread_user.c:40)
我不明白这一点,因为我习惯于当我不使用malloc足够的空间时出现此错误,那么为什么当我尝试释放某些东西时会出现错误?正在写什么?
感谢
它告诉你什么是错误的地址0x41a6148是一个大小为65,536 free'd的块内的65,376字节。你(最有可能)释放一个无效的指针。 – user786653
发布相关代码行。 – BlackJack