On Wed, 30 Oct 2002, Alexey Ozeritsky wrote:
> > проблема в том, что после этого > ничего не работает. > например функция для решения ур-я AX=B, > с помощью LU разложения, если я не ошибаюсь: > dgesv(N, NRHS, A, LDA, IPIV, B, LDB, INFO ) > > в прграмме пишу > double *A,*X; > int *C; > int n; > int INFO; > ....... > n=5; > ...... > A=malloc(n*n*sizeof(double)); > X=malloc(n*n*sizeof(double)); > C=malloc(n*n*sizeof(double)); > ....... > dgesv_(n,n,A,n,C,X,n,INFO); > ....... > (в этом случае должно происходить обращение матрицы) > > и получаю segmentation fault > #1 0x080493c6 in main (argc=0, argv=0x0) at main.c:77 > 77 dgesv_(n,1,A,n,C,X,n,INFO); > > В фортране все аргументы передаются по адресу. Правильно писать dgesv_(&n,&n,A,&n,C,X,&n,&INFO); А вообще то я пользуюсь "обертками": либо lapack++, либо mtl. lapack++ - маленькая библиотека и будет полезна чтобы смотреть как там осуществляется вызов lapack-овских программок. Ответ я подсмотрел именно в ней. Успехов. Юра.

