在尝试自己学习C时,我遇到了这个我想开发的简单程序。它只是试图利用指针数组的指针来创建类似于矩阵的东西。我在Windows上编译,当我运行它时,它只是崩溃,同时,在Linux上尝试这个代码它说segmentation fault
,这是因为函数参数是数组?我在这里做错了什么?了解指针数组的指针作为函数的参数
#include <stdio.h>
#include <stdlib.h>
void initializeArray(float** array, int size);
void printArray(float** array, int size);
int main()
{
float** array_1 = NULL;
int array_size = 3;
initializeArray(array_1, array_size);
// Free memory from array
for (int i = 0; i < array_size; i++)
{
free(array_1[i]);
}
free(array_1);
return 0;
}
void initializeArray(float** array, int size)
{
array = malloc(size * sizeof(float*));
if (array)
{
for (int i = 0; i < size; i++)
{
array[i] = malloc(size * sizeof(float));
if (!array[i])
{
exit(0);
}
}
}
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
array[i][j] = 0;
}
}
}
void printArray(float** array, int size)
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
printf("%f\t", array[i][j]);
}
printf("\n");
}
}
功能(并且是三星级的程序员不是恭维) –
是,三星级的程序员:你会避免这种情况。 –
@ Jean-FrançoisFabre啊,我明白了,没有注意到,但在那之后,我应该如何在main()中调用函数?分配给'array_1'足够了吗? – lorenzattractor