我想要一个整数的k 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;
}我得到了segfault。我做错了什么?
发布于 2013-04-18 21:50:38
应该是
for(i = 0; i < k; i++)
{
pipe_fd_ptr[ i ] = malloc(2*sizeof(int));
}对于pipe_fd_ptr = malloc(k*sizeof(int*));,您为指向int的k个指针分配了空间,然后使用pipe_fd_ptr[ i ] = malloc(2*sizeof(int));遍历数组并为每个指针分配内存
发布于 2013-04-18 21:50:28
for(i = 0; i < k; i++)
{
pipe_fd_ptr[i] = malloc(2*sizeof(int));
}https://stackoverflow.com/questions/16084809
复制相似问题