C 指针和多维数组

C 指针和多维数组,c,pointers,memory-management,C,Pointers,Memory Management,我想要一个包含整数的k2元素数组。我的代码: 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[

我想要一个包含整数的k2元素数组。我的代码:

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;
}
我犯了错误。我做错了什么?

应该是

for(i = 0; i < k; i++)
{
    pipe_fd_ptr[i] = malloc(2*sizeof(int));
}
for(i = 0; i < k; i++)
{
    pipe_fd_ptr[ i ] = malloc(2*sizeof(int));
}
带管道的管道直径=mallock*sizeofint*;您为int的k个指针分配了空间 然后通过数组进行迭代,并使用pipe_fd_ptr[i]=malloc2*sizeofint为每个指针分配内存

应该是

for(i = 0; i < k; i++)
{
    pipe_fd_ptr[ i ] = malloc(2*sizeof(int));
}
带管道的管道直径=mallock*sizeofint*;您为int的k个指针分配了空间 然后通过数组进行迭代,并使用pipe_fd_ptr[i]=malloc2*sizeofint为每个指针分配内存