2013-07-20 67 views
1

我为矩阵分配了一块内存块。比起周期,我记得那些台词。
我得到了未处理的异常:访问冲突在_tmain循环中写入位置0x00557148 。 我错了什么?用于二维数组的动态malloc

double **d; 

#define COUNT 10 

int create() 
{ 
    d = (double**) malloc(COUNT * sizeof(double*)); 
    if (!d) 
     return 0; 
    int size = COUNT * sizeof(double); 
    double *_new = (double*) malloc(COUNT * size); 

    if (!_new) 
     return 0; 
    for (int i = 0; i < COUNT; i++) { 
     d[i] = _new; 
     _new += size; 
    } 

    return 1; 
} 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    double *_d; 
    if (create()) { 
     for(int i = 0; i < COUNT; i++) { 
      _d = d[i]; 
      for (int j = 0; j < COUNT; j++) 
       _d[j] = 5; 
     } 
    } else 
     return -1; 

    return 0; 
} 
+0

你'#包括'? (不要投“malloc”的结果!) – Kninnug

+0

是的,我做到了。未处理的主循环中的异常。当我= 6 – Qwerty

回答

1

我敢肯定你需要改变_new += size_new += COUNT

+0

哦......没错!谢谢 – Qwerty