Posez votre question Signaler

[C] Structure avec tableau taille dynamique ?

Stupeflip 392Messages postés jeudi 8 février 2007Date d'inscription 4 décembre 2007Dernière intervention - Dernière réponse le 14 mai 2007 à 16:49
Bonjour,
Alors voilà j'ai une structure avec dedans :
unsigned char  lg_champ;			
unsigned char  champ[7];

Vous vous en doutez, je voudrais remplacer le 7 par une variable dépendant de lg_champ. Qqun saurait-il comment faire cela en C ? Voire alternative C++ avec des classes ?
Merci d'avance !
Lire la suite 
Réponse
+0
moins plus
int nombre=7;
unsigned char *champ;

champ=(unsigned char*)malloc(nombre*sizeof(unsigned char));

Tu es obligé de faire un tableau dynamique si tu souhaites allouer le tableau à l'exécution.

En c++, tu utiliserais plutôt l'opérateur new, pas besoin de classes pour faire ça.
Ajouter un commentaire
Réponse
+0
moins plus
Merci, mais ce n'est pas ce que je recherche, je reformule :

Il me faut la déclaration du tableau et de sa taille allouée dans la structure si c'est possible. Donc pas de malloc/new dans une éventuelle fonction.
Ajouter un commentaire
Réponse
+0
moins plus
Alors non ce n'est pas possible. En effet, si tu n'écris pas la dimension du tableau en dur dans le programme, alors l'initialisation se fait dans le heap. C'est pourquoi il faut une déclaration dynamique, et du coup, tu es obligé d'utiliser malloc ou new.
Ajouter un commentaire
Réponse
+0
moins plus
Erf.. Bon je vais continuer à chercher une solution..

Merci à toi !
Ajouter un commentaire
Ce document intitulé «  [C] Structure avec tableau taille dynamique ?  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.