【发布时间】:2012-10-17 19:09:14
【问题描述】:
我的代码中有“分段错误”。我很好奇我是否在函数中使用“malloc()”分配了一些空间。功能完成后,空格还有效吗? 进一步的问题,当创建这样的子线程时,我想它即使在其父级退出后仍然存在。我在 Linux 中使用 GCC。
void foo(){
void *child_stack;
child_stack=(void*)malloc(16384);
child_stack += 16384;
clone((void*)do_function,child_stack,0,NULL);
}
【问题讨论】:
-
段错误发生在代码中的哪个位置? (您可以使用调试器(例如 gdb)解决此问题)仅使用
malloc绝不会导致段错误,您必须在更早的时候破坏进程的内存。 -
您将
void *转换为void *。 That makes no sense. -
进一步你在
void *上做算术。 -
这段代码甚至无法在 C 编译器上编译...
-
@YefimDinitz 谢谢。还在想办法。
标签: c segmentation-fault