【发布时间】:2015-06-06 09:32:51
【问题描述】:
我想用一些参数调用一个函数,并在这个函数中分配一个二维数组,然后将指向它的指针传回给 main。这不是我正在使用的实际代码,而是一个简化的“玩具”代码来解释我正在尝试什么。我遇到了段错误,我不太明白为什么。我以前做过这样的事情,我认为这会奏效。知道我在搞砸什么吗?
void func(int val, int ** array);
int main()
{
int **array;
int i = 2;
func(i,array);
// do some stuff with info from array[i][2]
free(array);
}
void func(int val, int **array)
{
// do some calculation here to find the row size for array
array = malloc(row_size*sizeof(int *));
for (i = 0; i < row_size; i++)
array[i] = malloc(2* sizeof(int));
// fill the 2d array with some values
}
【问题讨论】:
-
附注:根据您的需要,分配一个连续的内存区域会更容易,
malloc(sizeof(int) * rows * columns)