Bonjour,
je souhaiterais rendre compatible un programme en C réalisé sous Visual Studio 2010 avec MATLAB r2010b.
Pour cela j'ai créé un fichier MEX et ajouté les différentes bibliothèques à mon projet etc... bref tout se passe bien niveau compilation
Cependant j'ai un problème pour accéder à des données stockées dans une structure.
Lorsque j'accède aux données dans la fonction creation_surface_englobante j'accède correctement aux données.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 surface_englobante=creation_surface_englobante((serie->data)[k],serie->la,serie->lo); printf("\n adresse %d ",surface_englobante->surface_englobante->data); printf("\n adresse %f ",surface_englobante->surface_englobante->data[0][0][0]); mexCallMATLAB(0,NULL,0, NULL, "pause"); // affectation des resultats à la variable de sortie globale for(i=0;i<serie->lo;i++) { for(j=0;j<serie->la;j++) { printf("\n[%d][%d][%d]\n",k,i,j); mexCallMATLAB(0,NULL,0, NULL, "pause"); printf("\n data_sortie[0][%d][%d] = %f",i,j,surface_englobante->surface_englobante->data[0][i][j]);
Lorsque j'y accède en sortie de la fonction tout est normal aussi.
Cependant une fois rentré dans la boucle toute la mémoire a été réinitialisée à zéro...
Quelqu'un saurait pourquoi ? Et surtout comment remédier à ce problème ?
En pièce jointe une capture de la trace d'exécution
Merci
Partager