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을 사용하는 사람의 도움을 주시면 감사하겠습니다. 그냥 참고하시기 바랍니다. gsl matrix examples
옙 이것은 본질적으로 내가 한 일입니다. 당신의 도움을 주셔서 감사합니다! 메모리를 할당하는 데 익숙하지 않았지만 포인터를 리뷰 한 후에는 내가 무엇을했는지 깨달았다. – jti107