Accueil > Forum > > > > Struct dynamique est ce possible ?
Struct dynamique est ce possible ?
mardi 3 juillet 2007 à 20:16:08 |
Struct dynamique est ce possible ?

Booster
|
Bonjour à tous, Voici ce que je veu faire : struct test{ int var1; char * tab; } //Dans mon code test mastruct; mastruct.tab = new char * [100]; // Sachant que biensure sa peu etre 100 comme 1000 ... Ceci ne marche pas quand je passe en paramétre ma structure dans un recv() le recv retourne -1 :( par contre si je marque comme ceci: struct test{
int var1;
char tab[100];
} La le recv() marche mais ce n'est plus dynamique. Quelqu'un à une idée pour rentre le tableau qui est dans ma structure dynamique ? Merci d'avance
|
|
mardi 3 juillet 2007 à 20:38:43 |
Re : Struct dynamique est ce possible ?

BruNews
|
mastruct.tab = new char[100];
ciao... BruNews, MVP VC++
|
|
mardi 3 juillet 2007 à 20:40:18 |
Re : Struct dynamique est ce possible ?

Booster
|
Escuse erreur de ma part j'ai voulu marquer mastruct.tab = new char[100]; et non mastruct.tab = new * char[100]; qui est totalement faux... Donc ceci ne fonctionne pas ^^ Merci pour ta réponse
|
|
mardi 3 juillet 2007 à 23:10:38 |
Re : Struct dynamique est ce possible ?

Booster
|
Personne n'a d'autre idée ? :(
|
|
mardi 3 juillet 2007 à 23:33:17 |
Re : Struct dynamique est ce possible ?

BruNews
|
faut voir ce que tu en fais de ta structure mais sinon c'est bon au niveau allocation.
ciao... BruNews, MVP VC++
|
|
mercredi 4 juillet 2007 à 17:28:13 |
Re : Struct dynamique est ce possible ?

Booster
|
Salut,
Ben comme je l'est dit c'est pour mettre dans un recv() de socket...
j'ai essayer avec malloc mais meme probleme lors de la reception d'un message recv retourne -1 car en réalité il n'a pu ecrire dans le buffer que je lui est passé :(
Tu n'aurais pas une idée ? ruse ou autre ^^
|
|
jeudi 5 juillet 2007 à 09:41:16 |
Re : Struct dynamique est ce possible ?

rt15
|
Salut,
(Ce que je vais dire est soumis à caution, et est basé plus sur le Delphi que sur le C)
Quand tu déclare ça :
struct test{ int var1; char * tab; }
Ca fait quelle taille ? A priori 8 octets : les 4 de l'int plus les 4 du pointeur. Tu peux vérifier avec sizeof.
Maintenant si tu fait un mastruct.tab = new char[100]; Tu alloue 100 octets (En MBC, en unicode, ça fait peut être le double).
Si tu refait un sizeof, tu tomberas pourtant toujours sur 8. Les 100 octets ont été alloués quelque part dans le tas et sont pointés par les 4 derniers octets de ta structure.
Si tu fait : macopiedestruct = mastruct;
Cela fait une copie de 8 octet... macopiedestruct .tab pointe alors sur le MEME tableau que mastruct.tab. Donc toute modification appliquées à macopiedestruct .tab sera répercutée sur mastruct.tab.
Partant de cette état de fait, lors de ta transmission de ta structure à ta socket, il faut que tu fasse un peu de code pour gérer le passage correctement. Il faut que tu commence par passer les 4 octets de var1, puis les 100 octets de tab. A la réception, il faut que tu copie le var1 qui arrive dans le var1 d'une structure, et que tu récupère les 100 octets dans un tableau, et que tu fasse pointer le pointeur de ta structure sur ce tableau.
|
|
jeudi 5 juillet 2007 à 17:51:41 |
Re : Struct dynamique est ce possible ?

Booster
|
Salut,
Je te remercie de ta réponse, se que tu à dit au début je le savais puisque effectivement j'avais fait un sizeof pour voir la taille ^^ et effectivement tu à raison ça fait 8 octets.
Bon bah vu qu'apriori on ne peu faire de stucture dynamique ^^ je vais essayé de passer par un autre moyen c'est dommage quand même.
|
|
Cette discussion est classée dans : dynamique, tab, char, struct, recv
Répondre à ce message
Sujets en rapport avec ce message
Lecture/Ecriture/Modification d'une structure dans un fichier [ par paniX ]
Bonjour. Alors voici mon probleme:j'ai créé une structure client qui a cette forme :struct client{ int id; char nom[30]; char prenom[30]; char adresse
lire dans un fichier [ par skeul ]
Bonjour,je rencontre qqs difficultés a faire une fonction qui lit un fichier et qui rentre la chaine de caractere dans un tableauy a comme un probleme
struct [ par ready4 ]
Je ne sais pas comment initialiser mes moteurs //intialisation moteursM1 = {2, 1, 1, 2, 0, 0, 120};M2 = {8, 4, 4, 8, 0, 0, 80};M3 = {32, 16, 16, 32, 0
Allocation dynamique [ par payen ]
Salut a tous,J'ai juste besoin d'une petite confirmation: je souhaite creer de facon dynamique un tableau a NBL lignes NBC colonnes. Lequel des 2 code
fonction d'alloaction dynamique [ par tomsawyerbelgique ]
Pour une allocation dynamique d'un tableau à deux dimensions. Comme celle ci:cout // Initalisation int** tab = new int*[p_size1_tab]; for(in
envoi d'une structure dans un socket [ par Taum ]
Bonjour, voilà j'ai besoin d'envoyer une structure dans un paquet udp :typedef struct { unsigned short TransactionId; short Flags; short Questions; sh
Espace mémoire occupé par une structure [ par HCJarod ]
Salut,j'ai un vague souvenir concernant les structures en C (struct) qui n'occupe pas la même place mémoire en fonction du sens de la déclaration. Ca
tableau char [ par dingue007 ]
Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l
char tab[]=a; [ par zelze ]
Voila mon probleme:je connais char tab[]="ton texte"; mais se que je veux faire c'est a la place de "ton texte" mettre une variable.j'ai essaié plusie
recv() et du brol [ par epoc ]
hum... encore moi!g un petit prob avec la fonction recv() ou send(), je c pas trop.dans mon client j'ai ça :char *buffer = new char[1024];buffer="NEW
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|