Version française
Home     About     Download     Resources     Contact us    
Browse thread
Interfaçage C/CAML
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Nicolas Joliot <Nicolas.Joliot@i...>
Subject: Interfaçage C/CAML
Je suis actuellement en train de travailler sur l'interfaçage pour CAML
de la bibliothèque ILOG CPLEX 6.5.

J'ai actuellement des problèmes lorsque j'invoque 2 de ces fonctions C
sous Caml, l'une me renvoyant un floatant, l'autre un tableau de
floatant.

Lorsqu'elles sont appelées séparément, je peux afficher les resulats
sans problème, mais lorsque les deux sont appelées successivement et que
j'essaye d'afficher le tableau de floatants, j'ai systématiquement un
"Bus Error".

Par contre, l'affichage du floatant simple ne pose pas de problème,
aussi je pense que l'erreur doit provenir de la façon dont j'ai
représenté le tableau de floatant dans le fichier interface .c :

- déclaration : CAMLlocal1(tableau_float)
- allocation : tableau_float=alloc(nb_element*2,Double_array_tag)
- Utilisation :Store_double_field(tableau_float,i,floatant_a_renvoyer)
_ retour sous CAML par CAMLreturn

La représentation de ce tableau de float de type value est-elle
correcte? Si oui, quel peut être l'explication de ce plantage
systématique? Si non, quel est la bonne représentation en type "value"
d'un tableau de floatant? ( qui est d'ailleurs assez mal expliquée sur
le manuel on-line de ocaml)

Par ailleurs, j'ai remarqué qu'un printf"%f" pour afficher les floatants
de ce tableau engendrait parfois un "Bus Error".


-----------------------------------------------------------
JOLIOT Nicolas.
IRISA-INRIA, Campus de Beaulieu, 35042 Rennes cedex, France
Tél: +33 (0) 2 99 84 71 00, Fax: +33 (0) 2 99 84 71 71
email : nicolas.joliot@irisa.fr
-----------------------------------------------------------