2013-07-20 100 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