Rechercher : dans
Par :

[C] Structure avec tableau taille dynamique ?

Dernière réponse le 14 mai 2007 à 16:49:10 Stupeflip, le 14 mai 2007 à 15:09:20 
 Signaler ce message aux modérateurs

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 !
Qui n'a rien n'a rien (Proverbe Norvillois)
Configuration: Windows XP
Firefox 1.5.0.11

Meilleures réponses pour « [C] Structure avec tableau taille dynamique ? » dans :
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Les pointeurs en langage C VoirDéfinition d'un pointeur Un pointeur est une variable contenant l'adresse d'une autre variable d'un type donné. La notion de pointeur fait souvent peur car il s'agit d'une technique de programmation très puissante, permettant de définir des...
Les structures en langage C++ VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

fiddy, le 14 mai 2007 à 15:29:20

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.

Répondre à fiddy

2

Stupeflip, le 14 mai 2007 à 15:34:54

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.
Qui n'a rien n'a rien (Proverbe Norvillois)

Répondre à Stupeflip

3

fiddy, le 14 mai 2007 à 16:17:48

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.

Répondre à fiddy

4

 Stupeflip, le 14 mai 2007 à 16:49:10

Erf.. Bon je vais continuer à chercher une solution..

Merci à toi !
Qui n'a rien n'a rien (Proverbe Norvillois)

Répondre à Stupeflip