我在寻找返回带有数组或指向数组的指针的结构的最佳方法时遇到了一些麻烦。
这就是我想做的: 我有一个结构
typedef struct {
double *matrix;
int cols;
int rows;
int nelems;
} ResultMat;
和一个解析文件的函数。我需要调用该函数并让它返回结构
ResultMat read (string file, string tag) {
ResultMat mat;
.....
mat.cols = //some value from the file
mat.rows = //some value from the file
double array[rows][cols];
//now i fill the array
.......
mat.matrix = *array;
return mat;
}
数组中充满了值,我想用 array/指向存储在 mat.matrix 中的数组的指针。
如何做到这一点,是否有更好的方法?我对 C 很陌生,但更熟悉 OO 编程,这就是为什么我很难找到最佳解决方案。
希望大家能给我一些帮助!谢谢
最佳答案
我认为
双数组[行][列];
当您在本地函数堆栈上创建数组时,这将是一个问题。
一旦您离开该功能,该信息就会被删除。
您还应该注意,可变长度数组不符合 ANSI-C,我认为您最好不要使用它。
您应该使用指针和动态内存分配。 malloc 将是此处的关键字。
希望这有帮助
关于c - 在 C 中使用结构并返回二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9198978/