1

kintの 2 要素配列の配列が必要です。私のコード:

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;
}

セグメンテーション違反になります。私は何を間違っていますか?

4

2 に答える 2

3

する必要があります

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

int への k ポインターにpipe_fd_ptr = malloc(k*sizeof(int*));スペースを割り当てた後、配列を反復処理し、各ポインターにメモリを割り当てますpipe_fd_ptr[ i ] = malloc(2*sizeof(int));

于 2013-04-18T13:50:37.853 に答える
1
for(i = 0; i < k; i++)
{
    pipe_fd_ptr[i] = malloc(2*sizeof(int));
}
于 2013-04-18T13:50:27.780 に答える