2013-04-18 151 views
1

我想有一個包含整數的2元素數組的k數組。我的代碼:指針和多維數組

int **pipe_fd_ptr; 
pipe_fd_ptr = malloc(k*sizeof(int*)); 
for(i = 0; i < k; i++) 
{ 
    pipe_fd_ptr = malloc(2*sizeof(int)); 
} 

// this is just for testing 
for(i = 0; i<k; i++) 
{ 
    for(j=0;j<2;j++) 
     pipe_fd_ptr[i][j] =j; 
} 

我收到段錯誤。我究竟做錯了什麼?

回答

3

應該

for(i = 0; i < k; i++) 
{ 
    pipe_fd_ptr[ i ] = malloc(2*sizeof(int)); 
} 

隨着pipe_fd_ptr = malloc(k*sizeof(int*));您對於k指針爲int 然後迭代槽的陣列和每個指針與pipe_fd_ptr[ i ] = malloc(2*sizeof(int));

+0

+1爲解釋:) – MOHAMED

1
for(i = 0; i < k; i++) 
{ 
    pipe_fd_ptr[i] = malloc(2*sizeof(int)); 
} 
+0

愚蠢的我分配內存分配的空間...: ( – pmichna