2013-10-21 31 views
1

當我運行我的程序只是掛起。我的雙指針設置有什麼問題嗎?如果我評論這一點,我的程序不掛。如何初始化雙指針有什麼問題?

double **transverse; 
transverse = malloc(rows*sizeof(double*)); //allocate memory to double pointer 
for (i = 0; i < rows; i++) 
{ 
    transverse[i] = malloc(rows*sizeof(double*)); 
    for (j = 0; j < rows; j++) 
     transverse[i][j] = 0; 
} 

回答

4

你的第二個分配是不對的

transverse[i] = malloc(rows*sizeof(double*)); 

應該

transverse[i] = (double*)malloc(rows*sizeof(double)); 

traverse[i]double *,因此,你需要使用sizeof(double)

+0

啊than thanx。不知道我是如何錯過的。 – Ace

+0

@Andre不客氣 – Kunal

3
for (i = 0; i < rows; i++) 
{ 
    //Just double for allocating memory for double pointer transverse[i] 
    transverse[i] = malloc(rows*sizeof(double)); //<-- remove double* 
    for (j = 0; j < rows; j++) 
     transverse[i][j] = 0; 
}