Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2303 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  tableau de structure

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

tableau de structure

n°425833
polo021
Posté le 13-06-2003 à 09:07:21  profilanswer
 

Dans mon projet, j'aurais besoin de creer un tableau de structures. Voici la structure

Code :
  1. struct AwbData
  2. {
  3. Des entiers et des CString
  4. } *awb_data;


et voici comment je cree le tableau

Code :
  1. awb_data = new AwbData[nb_lines];


 
Plus loin, lors de l'execution du programme j'ai besoin d'element supplementaires dans mon tableau donc j'utilise  

Code :
  1. realloc(awb_data,nb_lines+10*sizeof(AwbData));

mais ca ne fonctionne pas. Mes elements supplementaires ne sont pas alloues.
Comment dois je faire?
 :??:

mood
Publicité
Posté le 13-06-2003 à 09:07:21  profilanswer
 

n°425838
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 09:08:46  profilanswer
 

Déjà c pas une bonne idée de mélanger les opérateur d'allocation du C++ avec les fonction d'allocation C. Don tu me vire le new et tu met un malloc à la place.


---------------
Le Tyran
n°425843
polo021
Posté le 13-06-2003 à 09:09:45  profilanswer
 

LetoII a écrit :

Déjà c pas une bonne idée de mélanger les opérateur d'allocation du C++ avec les fonction d'allocation C. Don tu me vire le new et tu met un malloc à la place.


ca fonctionne pas non plus, c'est pour ca que j'ai voulu essayer avec new

n°425851
chrisbk
-
Posté le 13-06-2003 à 09:12:34  profilanswer
 

realloc tu oublie gentillement en C++, ca ne fait pas l'appel de constructeur, fo que tu te farcisse le tout a la main a coup de vrai reallocation (new) et operateur de copie

n°425854
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 09:13:05  profilanswer
 

Code :
  1. awb_data = realloc(awb_data,nb_lines+10*sizeof(AwbData));


 
C bien de récupérer le nouveau pointeur.
 


---------------
Le Tyran
n°425859
Taz
bisounours-codeur
Posté le 13-06-2003 à 09:14:20  profilanswer
 

t'es sur de pas vouloir utiliser un std:vector?

n°425867
polo021
Posté le 13-06-2003 à 09:16:31  profilanswer
 

LetoII a écrit :

Code :
  1. awb_data = realloc(awb_data,nb_lines+10*sizeof(AwbData));


 
C bien de récupérer le nouveau pointeur.
 
 


 :non: ca ne change rien

n°425877
polo021
Posté le 13-06-2003 à 09:18:10  profilanswer
 

je vous montre quand meme comment j'avais fait mon malloc parce que si ca tombe j'ai fait une bete erreur.

Code :
  1. awb_data = (AwbData*)malloc(nb_lines*sizeof(AwbData));


Voila, donc ca, ca ne fonctionne pas. Le pgm plante quand je veux mettre quelque chose dans le tableau.
C'est pourtant correct non?

n°425879
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 09:18:56  profilanswer
 

Code :
  1. awb_data = realloc(awb_data,(nb_lines+10)*sizeof(struct AwbData));


 
Et les parenthéses ça aide, pas réveillé moi ce matin.
 
 
Et je pense qu'il manque un struct là.


Message édité par LetoII le 13-06-2003 à 09:19:36

---------------
Le Tyran
n°425884
chrisbk
-
Posté le 13-06-2003 à 09:19:49  profilanswer
 

(je veux pas dire, mais Taz a parlé d'or la, remballez vos mallocs a la con et arretz de vous prendre la tete)

mood
Publicité
Posté le 13-06-2003 à 09:19:49  profilanswer
 

n°425885
Joel F
Real men use unique_ptr
Posté le 13-06-2003 à 09:19:53  profilanswer
 

polo021 a écrit :

Dans mon projet, j'aurais besoin de creer un tableau de structures. Voici la structure

Code :
  1. struct AwbData
  2. {
  3. Des entiers et des CString
  4. } *awb_data;




 
ca serait pas mieux CA :
 

Code :
  1. struct AwbData
  2. {
  3. Des entiers et des CString
  4. } awb_data;
  5. typedef awb_data* pAwbData;


 

Code :
  1. pAwb_data = new AwbData[nb_lines];


 
Juste mes 2cts


Message édité par Joel F le 13-06-2003 à 09:20:15
n°425887
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 09:20:15  profilanswer
 

++Taz a écrit :

t'es sur de pas vouloir utiliser un std:vector?


 
 :jap: Ce serait tellement mieux. D'un autre côté s'il veut faire du pure C [:spamafote]


---------------
Le Tyran
n°425888
chrisbk
-
Posté le 13-06-2003 à 09:20:45  profilanswer
 

LetoII a écrit :


 
 :jap: Ce serait tellement mieux. D'un autre côté s'il veut faire du pure C [:spamafote]


 
Mais nan il veut pas faire du pure C vu qu'il la tente avec des new :D

n°425890
Joel F
Real men use unique_ptr
Posté le 13-06-2003 à 09:21:11  profilanswer
 

Ah ben si c du C++, std::vector all the way !

n°425893
Taz
bisounours-codeur
Posté le 13-06-2003 à 09:22:47  profilanswer
 
n°426013
polo021
Posté le 13-06-2003 à 09:56:11  profilanswer
 


include <vector.h> fonctionne pas tres bien.

n°426018
Joel F
Real men use unique_ptr
Posté le 13-06-2003 à 09:57:27  profilanswer
 

T'as pensé au

Code :
  1. using namespace std

n°426026
Konar
Posté le 13-06-2003 à 09:58:56  profilanswer
 

polo021 a écrit :


include <vector.h> fonctionne pas tres bien.


 
c'est plus <vector>

n°426027
skeye
Posté le 13-06-2003 à 09:59:15  profilanswer
 

polo021 a écrit :


include <vector.h> fonctionne pas tres bien.


#include <vector>
tout court...?


---------------
Can't buy what I want because it's free -
n°426028
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 09:59:19  profilanswer
 

polo021 a écrit :


include <vector.h> fonctionne pas tres bien.


 
c #include <vector>
 
Edit: grillaid


Message édité par LetoII le 13-06-2003 à 09:59:41

---------------
Le Tyran
n°426040
polo021
Posté le 13-06-2003 à 10:01:09  profilanswer
 

LetoII a écrit :


 
c #include <vector>
 
Edit: grillaid


#include <vector>
 
 
fatal error C1083: Cannot open include file: 'vector': No such file or directory
 
#include <vector>
using namespace std; c'est bien comme ca? (ca marche pas non plus)

n°426044
skeye
Posté le 13-06-2003 à 10:01:42  profilanswer
 

polo021 a écrit :


#include <vector>
 
 
fatal error C1083: Cannot open include file: 'vector': No such file or directory
 
#include <vector>
using namespace std; c'est bien comme ca? (ca marche pas non plus)


quel compilo? :heink:


---------------
Can't buy what I want because it's free -
n°426057
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 10:03:33  profilanswer
 

skeye a écrit :


quel compilo? :heink:  


 
visual à ts les coup  [:ddr555]


---------------
Le Tyran
n°426065
chrisbk
-
Posté le 13-06-2003 à 10:05:10  profilanswer
 

LetoII a écrit :


 
visual à ts les coup  [:ddr555]  


avec taz dans le coin on est foutu, planquez vous [:lacuna coil]

n°426078
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 10:07:12  profilanswer
 

chrisbk a écrit :


avec taz dans le coin on est foutu, planquez vous [:lacuna coil]


 
 :lol:


---------------
Le Tyran
n°426081
polo021
Posté le 13-06-2003 à 10:07:43  profilanswer
 

LetoII a écrit :


 
visual à ts les coup  [:ddr555]  


heu... oui
Donc je fais quoi? :??: A part changer de compilo bien sur!

n°426085
skeye
Posté le 13-06-2003 à 10:08:24  profilanswer
 

LetoII a écrit :


 
visual à ts les coup  [:ddr555]  


Très juste au vu des erreurs...mais ca marche tré bien chez moi! :pt1cable:


---------------
Can't buy what I want because it's free -
n°426086
chrisbk
-
Posté le 13-06-2003 à 10:08:27  profilanswer
 

polo021 a écrit :


heu... oui
Donc je fais quoi? :??: A part changer de compilo bien sur!


 
ben rien, normalement la stl est fourni avec VC donc ta config est bricoleuse, ou bien t'en DL une (genre SGI)

n°426093
Konar
Posté le 13-06-2003 à 10:10:07  profilanswer
 

polo021 a écrit :


heu... oui
Donc je fais quoi? :??: A part changer de compilo bien sur!


 
you lose : pas de stl sur pocket pc.
 
mais y a surement des gens ki ont du en refaire une, faut chercher.

n°426101
Taz
bisounours-codeur
Posté le 13-06-2003 à 10:11:53  profilanswer
 

(je vous surveille, et je constate que la crainte est le meilleur des conditionnement)
 

Spoiler :

Mais j'aurais apprécié une petite reflexion du genre "Cstring ça suce des ours polaires, std::string ça r0}{0[2 !"

n°426103
Konar
Posté le 13-06-2003 à 10:13:21  profilanswer
 

++Taz a écrit :

(je vous surveille, et je constate que la crainte est le meilleur des conditionnement)
 

Spoiler :

Mais j'aurais apprécié une petite reflexion du genre "Cstring ça suce des ours polaires, std::string ça r0}{0[2 !"




 
entierement d'accord sur ce point.

n°426106
polo021
Posté le 13-06-2003 à 10:14:03  profilanswer
 

++Taz a écrit :

(je vous surveille, et je constate que la crainte est le meilleur des conditionnement)
 

Spoiler :

Mais j'aurais apprécié une petite reflexion du genre "Cstring ça suce des ours polaires, std::string ça r0}{0[2 !"




bon ben sinon je peux pas allouer tout betement un tableau de structures??


Message édité par polo021 le 13-06-2003 à 10:14:21
n°426107
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 10:14:21  profilanswer
 

++Taz a écrit :

(je vous surveille, et je constate que la crainte est le meilleur des conditionnement)
 

Spoiler :

Mais j'aurais apprécié une petite reflexion du genre "Cstring ça suce des ours polaires, std::string ça r0}{0[2 !"




 
 [:ddr555]


---------------
Le Tyran
n°426109
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 10:16:52  profilanswer
 

polo021 a écrit :


bon ben sinon je peux pas allouer tout betement un tableau de structures??


 

Code :
  1. typedef struc bidule
  2. {
  3. //ton code
  4. } BIDULE;
  5. BIDULE *truc = (BIDULE *)malloc(taille*sizeof(BIDULE));
  6. truc = (BIDULE *)realloc(truc,nouvelleTaille*sizeof(BIDULE));


 
Edit ça ca marche en théorie.


Message édité par LetoII le 13-06-2003 à 10:17:16

---------------
Le Tyran
n°426112
skeye
Posté le 13-06-2003 à 10:17:52  profilanswer
 

LetoII a écrit :


 

Code :
  1. typedef struc bidule
  2. {
  3. //ton code
  4. } BIDULE;
  5. BIDULE *truc = (BIDULE *)malloc(taille*sizeof(BIDULE));
  6. truc = (BIDULE *)realloc(truc,nouvelleTaille*sizeof(BIDULE));


 
Edit ça ca marche en théorie.


C'est ce qu'il a posté au début, non? :??:  
Remarque il a pas dit ce qu'il se passait...


---------------
Can't buy what I want because it's free -
n°426114
Taz
bisounours-codeur
Posté le 13-06-2003 à 10:18:08  profilanswer
 

polo021 a écrit :


bon ben sinon je peux pas allouer tout betement un tableau de structures??

allouer betement tu peux, reallouer tu peux pas. utilise std::vector et tu pourras te concentrer sur autre chose dans ton programme

n°426120
Taz
bisounours-codeur
Posté le 13-06-2003 à 10:19:54  profilanswer
 

LetoII a écrit :


 

Code :
  1. typedef struc bidule
  2. {
  3. //ton code
  4. } BIDULE;
  5. BIDULE *truc = (BIDULE *)malloc(taille*sizeof(BIDULE));
  6. truc = (BIDULE *)realloc(truc,nouvelleTaille*sizeof(BIDULE));


 
Edit ça ca marche en théorie.

et non ça marche pas mais alors pas du tout. comme malloc n'appelle pas le constructeur, et ben t'es fucken fucked, ton instance est pas construite, ses membres non plus, comportement indéfini. pour un int ça passera, par contre le premier accès à ta string c'est erreur de segmentation
 
il va de soi que ce topic est clairement C++: pas tant à cause du new, mais à cause de la déclaration initiale de la struct AwbData


Message édité par Taz le 13-06-2003 à 10:21:08
n°426122
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 10:20:32  profilanswer
 

++Taz a écrit :

allouer betement tu peux, reallouer tu peux pas. utilise std::vector et tu pourras te concentrer sur autre chose dans ton programme


 
apparement il peut pas non plusutiliser les vector  [:ddr555]


---------------
Le Tyran
n°426125
LetoII
Le dormeur doit se réveiller
Posté le 13-06-2003 à 10:21:25  profilanswer
 

++Taz a écrit :

et non ça marche pas mais alors pas du tout. comme malloc n'appelle pas le constructeur, et ben t'es fucken fucked, ton instance est pas construite, ses membres non plus, comportement indéfini. pour un int ça passera, par contre le premier accès à ta string c'est erreur de segmentation


 
C une structure bannane on s'en cogne du constructeur.
 
Et s'il veut utiliser des objets il fait des new et des delete et il oublie realloc.


Message édité par LetoII le 13-06-2003 à 10:22:17

---------------
Le Tyran
n°426126
Taz
bisounours-codeur
Posté le 13-06-2003 à 10:22:14  profilanswer
 

LetoII a écrit :


 
apparement il peut pas non plusutiliser les vector  [:ddr555]  

quand tu veux planter un cloup, si ton marteau a pas de manche, tu changes de marteau, tu enfonces pas le clou avec ta tête


Message édité par Taz le 13-06-2003 à 10:22:26
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  tableau de structure

 

Sujets relatifs
tableau sans tableau en css ....[PHP] Insertion d'un tableau dans un tableau
Problème de tableau dynamiqueprobleme d'affichage tableau
[perl] Créer un tableau à 2 dimensionsPassage d un tableau dans un formulaire ?
[java] equivalent d'un tableau de structure mais en java.[Newbie] Passage par adresse d'un tableau de structure
Créer un tableau de structure de la taille de l'entier "i"Comment faire modifier par une fonction 1 tableau de structure ?
Plus de sujets relatifs à : tableau de structure


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR