0
我是使用GSL的新手,我想知道如何将GSL数组从一个函数返回给另一个函数。它不像一个正常的数组...我一直在试图弄清楚这一点,我没有强大的C背景,这让我疯狂。这里有两个伪函数来显示我正在尝试做什么。将GSL数组传递给其他函数
这是主要的功能
#include <stdio.h>
#include <stdlib.h>
#include <gsl/gsl_matrix.h>
void load(gsl_matrix * a);
int main()
{
int row, col,i,j;
row = 6; col = 25;
gsl_matrix *a = gsl_matrix_alloc(6,25);
load(a);
for (i = 0; i < 6; i++)
for (j = 0; j < 25; j++)
printf ("a[%d,%d] = %g\n", i, j,
gsl_matrix_get (a, i, j));
return 0;
}
这是它加载在从文件中的矩阵的负荷的功能。这部分似乎工作....我只是不能从这个功能的结果主要功能。
#include <stdio.h>
#include <stdlib.h>
#include <gsl/gsl_matrix.h>
void load(gsl_matrix * a)
{
int row_size, col_size;
row_size = 6; col_size = 25;
int status_obs;
gsl_matrix * obs_map = gsl_matrix_alloc(row_size,col_size);
FILE *f = fopen("obs_map.dat","r");
status_obs = gsl_matrix_fscanf(f,obs_map);
fclose(f);
a = obs_map;
if(status_obs == 0)
printf("Obstacle map loaded: %dx%d\n",row_size,col_size);
gsl_matrix_free (obs_map);
}
我很抱歉,如果这是一个愚蠢的问题,但我只需要在正确的方向一点帮助。任何使用GSL的人的帮助将不胜感激。只是FYI,这里是gsl matrix examples
是的,这基本上是我做的。谢谢你的帮助!不习惯分配内存,但我意识到我在做什么,一旦我回顾指针。 – jti107 2014-11-11 20:30:18