Structures en C
Bonjour,
D'habitude je programme en Labview mais, la je dois me mettre au C pour voir si executer du C dans labview diminue le temps de calcul.
Je desire faire en C le produit de 2 tableaux mais les entrées et sorties de mon code C sont générées automatiquement par labview.
Le code créé automatiquement est le suivant:
/* CIN source file */
#include "extcode.h"
#include <math.h>
typedef struct {
int32 dimSize;
float32 elt[1];
} TD1;
typedef TD1 **TD1Hdl;
MgErr CINRun(TD1Hdl *X, TD1Hdl *Y, TD1Hdl *Z);
MgErr CINRun(TD1Hdl *X, TD1Hdl *Y, TD1Hdl *Z)
{
// Le produit des 2 tableaux Z = X*Y doit se faire ici
return noErr;
}
Je n'y connait rien en structures et j'ai du mal avec les pointeurs.
Si qqun dans la salle en sait un peu plus que moi...
Merci d'avance
D'habitude je programme en Labview mais, la je dois me mettre au C pour voir si executer du C dans labview diminue le temps de calcul.
Je desire faire en C le produit de 2 tableaux mais les entrées et sorties de mon code C sont générées automatiquement par labview.
Le code créé automatiquement est le suivant:
/* CIN source file */
#include "extcode.h"
#include <math.h>
typedef struct {
int32 dimSize;
float32 elt[1];
} TD1;
typedef TD1 **TD1Hdl;
MgErr CINRun(TD1Hdl *X, TD1Hdl *Y, TD1Hdl *Z);
MgErr CINRun(TD1Hdl *X, TD1Hdl *Y, TD1Hdl *Z)
{
// Le produit des 2 tableaux Z = X*Y doit se faire ici
return noErr;
}
Je n'y connait rien en structures et j'ai du mal avec les pointeurs.
Si qqun dans la salle en sait un peu plus que moi...
Merci d'avance
Configuration: Windows XP Firefox 2.0.0.4
1 réponse
-
Bonjour,
Je ne suis pas sûre, mais je pense qu'il y a un problème.
typedef TD1 **TD1Hdl;
MgErr CINRun(TD1Hdl *X, TD1Hdl *Y, TD1Hdl *Z);
On ne sais pas sur combien de TD1* pointe *X !-
-
-
-
@ekraOui je pense qu'on peut modifier la structure. Mais ce que je trouve bizarre c'est que les tableaux entrée et en sortie sont des tableaux 1D. Donc je ne vois pas pourquoi le code généré a mi des tableaux 2D.
Mais si tu as une idée avec une structure differente je suis preneur! ;-) -
@fiddyouai mais je ne comprends pas trop. Pourquoi on ne peut pas mettre simplement un truc du genre:
int i;
taille_tab = sizeof(X);
for (i=0;i<taille_tab;i++){
Z[i] = X[i] * Y[i]};
Ca serait vachement plus leger non?
-