Probleme de declaration!!

Résolu
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 29 août 2004 à 18:11
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 30 août 2004 à 18:45
bonjour,

Je voudrais declarer une structure : struct bpoly cube[npoint]; qui soit connue de toutes les fonctions de mon fichier source...sauf que la valeur de npoint n'est pas definie au depart dans l'header file, sa valeur lui sera donné dans une fonction.
Et ensuite la structure cube devra etre declarée. Mais si je declare dans une fonction elle ne sera pas globale.Comment faire pour qu'elle le soit ???

Merci.

15 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
29 août 2004 à 19:33
tu declare ta structure avec un pointeur char *coucou; et tu alloues selon tes besoins :

struct hello salut;

salut.coucou = malloc (ou HeapAlloc...etc)(...);

voila

++
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
29 août 2004 à 18:43
Tu ne peux tt simplement pas declarer un tableau avec une variable, mm de type de const, il faut une constante declaré avec #define. Voila pkoi utiliser l'alloc dynamique ;) malloc, calloc, realloc et free.

++
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
29 août 2004 à 18:48
malloc, ...
Mieux vaut se servir de l'API (VirtualAlloc, GlobalAlloc, ...)

@+
Arnotic,
Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
29 août 2004 à 19:12
Uè mais la derniere fois jme sui fait disputé par djl paske ct pas standard, et comme l'os n'est pas précisé, restons standard !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
29 août 2004 à 19:23
LOL,

Oui bien sur, mais le standard (portabilité) limite les performences, donc à voir suivant se qu'on veut faire bien sur...

@+
Arnotic,
Admin CS, MVP Visual C++
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
29 août 2004 à 19:29
Je ne vois pas comment adapter mon tableau de structures a un enplacement memoire creé avec malloc()...
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
29 août 2004 à 19:43
Euh je sui un peu perdu la ... donc je v aller me renseigner la dessus!Merci de ta reponse!
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
29 août 2004 à 21:08
N'hesite pas a dire si tu blocke.
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
30 août 2004 à 09:26
ben tu fait ta variable globale

vau mieux pas en déclarer bcp car C po très protégé

sans ça tu la déclare ds un cpp et en externe ds le header correspondant

++

Magic Nono: l'informagicien! 8-)
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
30 août 2004 à 14:27
j'ajoute juste qu'en c99 et c++ on peut declarer un tableau dont la taille est une variable spécifiée const
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
30 août 2004 à 15:48
En effet je bloque un peu....
Je voudrais savoir si cela est correct pour mon tableau de structures a taille variable:

la structure:

struct point
{
int x;
int y;
int z;
};

size_t n_element;
struct point*strp;

strp=malloc(n_element*sizeof(struct point));

pourrai-je acceder na mes structures de cette facon:

si n_element=8

*(strp+2).x=58; par exple, ou bien : strp[2].x=58; cela est il correct?
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
30 août 2004 à 15:51
marre
BListeIndir

Magic Nono: l'informagicien! 8-)
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
30 août 2004 à 16:14
utilise uniquement strp[2].x, evite l'autre ecriture (qui dans ce cas ne set a rien)

magic_Nono > me semble qu'on est en c
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
30 août 2004 à 16:20
possible
=> laisse tomber mes listes ou celles des stl alors
C des classes

sinon, ben utilise les indirections par crochets, C plus sur que les opérations ou tu risque de te planter
++

Magic Nono: l'informagicien! 8-)
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
30 août 2004 à 18:45
En effet je prog en C
Et je viens de tester ce que je viens d'ecrire et ca marche impec!

MERCI beaucoup! :big)
0
Rejoignez-nous