解决方案 »

  1.   

    你在bmp_i函数执行前,看看w的内存正不正确呢?
      

  2.   

     ii = (int **) malloc(sizeof(int *) * m);  
    而是使用的确是  m * n
      

  3.   


    在进入bmp_i函数前一直显示未定义的标识符w,如图,已经走完分配内存的函数和语句了,明明int** w 定义了,为什么会这样呢?应该怎么解决呀?
      

  4.   

    这里好像是有问题,改成这样了
    int **alloc_2d_int(int m, int n)
    {
        int **ii;
        int j;    ii = (int **) malloc(m*sizeof(int *) );
        alloc_error_check(ii);
        ii[0] = (int *) malloc(m*n*sizeof(int) );
        alloc_error_check(ii[0]);
        for (j = 1; j < m; j++) {
            ii[j] = ii[j - 1] + n;
        }
        return ii;

    还是解决不了~~
      

  5.   

    有这个东西
    #define alloc_error_check(p) { \
        if ((p) == NULL) { \
            fprintf(stderr, "Allocation Failure!\n"); \
            exit(1); \
        } \
    }
    这样不正确会提示的吧?或者怎么能知道是否分配正确呢?谢谢
      

  6.   

    崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。