构建时C程序崩溃(原因是malloc)

时间:2015-01-12 09:07:06

标签: c

我有一个用C语言制作的学校项目(实际上是大学水平,但是nvm)。它非常大,工作正常....在调试模式下。然而,当我构建它时,它会崩溃。我设法找到问题,它看起来像这样(名字是我的母语,所以我改变了它们):



    typedef struct
    {
       int a, b;
       another_struct **another_struct_handle;
    } my_struct;

    void some_function(const int n, my_struct **my_struct_handle)
    {
        //some code
        *my_struct_handle=(my_struct *)malloc(n*sizeof(my_struct)); // this is where it crashes
        //some code
    }

    int main()
    {
        my_struct *my_struct_handle;
        some_function(10, &my_struct_handle);
    }

很少注意到:

  1. 我已经在其他函数中使用another_struct执行完全相同的操作,但它并没有崩溃。这个"其他功能"当然,在some_function之前调用;
  2. 仅在我构建项目时崩溃,而不是在调试时崩溃;
  3. 我在代码:: blocks中使用GNU GCC编译项目(如果它有任何重要性);
  4. 编译器不会在我的代码中的任何地方给我任何警告或错误;
  5. 我不允许使用全局变量,这就是我需要将指针传递给指针的原因。
    有任何想法吗?提前致谢。

0 个答案:

没有答案