我试图编写一个函数,要求用户输入矩阵。它提示的行数,列数,然后提示值矩阵中的每个元素:直到我进入一个价值i = 0
然后按进入使用scanf for float **类型的分段错误
#include <stdio.h>
#include <stdlib.h>
void enterMatrix(float ** matrix, int nbLines, int nbColumns){
for (int i = 0; i < nbLines * nbColumns; i++){
printf("i = %d? ", i);
scanf("%f", matrix[i]);
}
}
int main(void){
int nbLines, nbColumns;
printf("nbLines? "); scanf("%d", &nbLines);
printf("nbColumns? "); scanf("%d", &nbColumns);
float *matrix[nbL * nbCol];
enterMatrix(matrix, nbLines, nbColumns);
}
一切工作正常,从而导致分段故障。
任何想法可能是错的?
'浮子*矩阵的计算[NBL * nbCol];'=>'浮子矩阵的计算[NBL * nbCol];'不需要指针。但你必须以某种方式将尺寸传递给'enterMatrix'。 –
阅读关于通过VLA函数:https://stackoverflow.com/questions/14548753/passing-a-multidimensional-variable-length-array-to-a-function –
什么是**矩阵**在enterMatrix函数? –