0
내가 여기에이 코드를 검토하고
: 나는 그러나 컴파일 할 때위치를 기록하는 동안 액세스 위반 오류
#include <stdio.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
#include <gsl/gsl_permutation.h>
int main () {
const long N = 10;
const gsl_rng_type *T = NULL;
gsl_rng *r = NULL;
gsl_permutation *p = NULL;
p = gsl_permutation_alloc (N);
gsl_permutation *q = NULL;
q = gsl_permutation_alloc (N);
gsl_rng_env_setup();
T = gsl_rng_default;
r = gsl_rng_alloc (T);
printf ("initial permutation: ");
gsl_permutation_init (p);
gsl_permutation_fprintf (stdout, p, " %u");
printf ("\n");
printf (" random permutation:");
gsl_ran_shuffle (r, p->data, N, sizeof(size_t));
gsl_permutation_fprintf (stdout, p, " %u");
printf ("\n");
printf ("inverse permutation: ");
gsl_permutation_inverse (q, p);
gsl_permutation_fprintf (stdout, q, "%u");
printf ("\n");
gsl_permutation_free (p);
gsl_permutation_free (q);
return 0;
}
, 내가 처리되지 않은 예외가 : 액세스 위반 쓰기 위치 오류가 발생했습니다. 나는 모든 포인터에 대해 메모리를 할당했지만 아직 오류는 계속된다고 생각합니다. 저는 C에 너무 익숙하지 않아 모든 입력을 환영 할 것입니다. 오후 8시 30 분 P.S. 디버거를 사용하면 다음 줄을 가리키고 있습니다. gsl_permutation_fprintf (stdout, p, " %u");
감사합니다.
편집 : 코드를 가지고 놀았으며 문제가 stdout 문에있을 수 있다는 것을 알았습니다.