用calloc分割错误

用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");

我在论坛上看到了很多这样的问题,但在所有答案中都是因为他们没有验证返回的指针。但在我的例子中,我在嵌入式系统上工作(所以没有Valgrind或Gdb),我用printf进行调试…所以我的程序会出现错误:

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;-)做出的)