Allocation de mémoire avec la fonction calloc [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
16 janvier 2011
-
Messages postés
5
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
16 janvier 2011
-
Salut à tous,
Voila, je suis en train d’upgrader une dll crée sous Labwindows/CVI avec Visual C++ V6.0, le code ci-dessous retourne deux erreurs sous VC++.
/* Déclaration des STRUCTURES */
/**********************************************************************/
typedef struct Struc_Colonne
{
char *Colonne;
char *Champ;
}Struc_Colonne;

typedef struct Struc_Ligne
{
long nbColonne;
Struc_Colonne *Colonne;
}Struc_Ligne;

typedef struct Struc_TableauDeDonnee
{
long nbLigne;
Struc_Ligne *Ligne;
}Struc_TableauDeDonnee;

Struc_TableauDeDonnee DataReturn;

DataReturn.Ligne = (struct*) calloc (lNbLigne,sizeof(Struc_Ligne));

DataReturn.Ligne[i].Colonne = (struct*) calloc(lNbColonne,sizeof(Struc_Colonne));



Erreur 1: cannot convert from 'struct PostgreSQL_Query::$S1 *' to 'struct Struc_Ligne *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Erreur 2: cannot convert from 'struct PostgreSQL_Query::$S2 *' to 'struct Struc_Colonne *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast



Avez-vous une solution ?

Merci à toutes et à tous.
A voir également:

5 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
re,


rien n'est pas un type contrairement à Struc_Ligne et Struc_Colonne.

DataReturn.Ligne = (struct Struc_Ligne*) calloc (lNbLigne,sizeof(Struc_Ligne));


@++
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,


struct n'est pas un type contrairement à Struc_Ligne et Struc_Colonne.


@++
Messages postés
5
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
16 janvier 2011

Salut,

Merci pour votre réponse
si j'enlève le struct le code sera alors:
DataReturn.Ligne = calloc (lNbLigne,sizeof(Struc_Ligne));

DataReturn.Ligne[i].Colonne =  calloc(lNbColonne,sizeof(Struc_Colonne));


d'où les erreurs:
error C2440: '=' : cannot convert from 'void *' to 'struct Struc_Ligne *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast

error C2440: '=' : cannot convert from 'void *' to 'struct Struc_Colonne *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast

et pour infos le même code déjà utilisé avec une application sous labwindows (compilateur c) depuis 2 ans sans problème.

pourrez-vous me dire qu'est-ce que je dois modifier exactement ?


MERCI
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
Bonjour,
Tout est dans le texte, il faut faire une cast avant calloc.


louis
Messages postés
5
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
16 janvier 2011

Tu est super patatalo
MERCI bien pour votre réponse et aussi pour votre disponibilité
aussi MERCI pour louis14



Mon problème est résolu

Allez bonne soirée a tous.