用calloc分割错误
我在论坛上看到了很多这样的问题,但在所有答案中都是因为他们没有验证返回的指针。但在我的例子中,我在嵌入式系统上工作(所以没有Valgrind或Gdb),我用printf进行调试…所以我的程序会出现错误:用calloc分割错误,c,segmentation-fault,calloc,C,Segmentation Fault,Calloc,我在论坛上看到了很多这样的问题,但在所有答案中都是因为他们没有验证返回的指针。但在我的例子中,我在嵌入式系统上工作(所以没有Valgrind或Gdb),我用printf进行调试…所以我的程序会出现错误: void myfunction(…) { CAM_t *n = NULL; /* Some code */ printf("before calloc\n"); n = calloc(1, sizeof *n); printf("calloced\n");
void myfunction(…)
{
CAM_t *n = NULL;
/* Some code */
printf("before calloc\n");
n = calloc(1, sizeof *n);
printf("calloced\n");
/* Rest of code */
}
当我运行它时,我有:
before calloc
Segmentation fault
有人对我为什么会犯这个错误有什么建议吗
谢谢你的帮助 可能是因为您之前在程序中所做的某些操作损坏了堆。您的嵌入式系统是否支持
calloc
?像int main()!我已经尝试过你给出的简单main,它编译和运行时没有错误。但是!你的回答让我尝试了一些东西:只要做一个calloc(1,1)
…它就行了!这对我来说毫无意义,因为在我需要一些凸轮的“子结构”之后,他没有分段错误,我所有的凸轮都填充了参数…Bref!非常感谢你的回答。(是的,我的凸轮没有他的定义,它是由asn1c;-)做出的)