Accueil > Forum > > > > Probleme malloc
Probleme malloc
jeudi 20 novembre 2003 à 21:42:17 |
Probleme malloc

ceeno
|
Bonjour à tous, Je cherche a crée un tableau dont j'augmente la mémoire à chaque fois que je veu y enregistrer une nouvelle valeur. Mais je n'y arrive pas... Voici ce ke je fais : typedef struct cps { float val; int nb; } cps_t; cps_t * VC; VC=(cps_t *)malloc(sizeof(cps_t)); VC[k].val=0; VC[k].nb=0; Puis pour agrandir d'une case VC : VC=(cps_t *)malloc(sizeof(VC)+1); Si quelqu'un pouvait m'aider ca serais sympa! Merci d'avance!
|
|
vendredi 21 novembre 2003 à 00:28:33 |
Re : Probleme malloc

BruNews
|
VC=(cps_t *)malloc(sizeof(VC)+1); NENNI !!! malloc demande la taille voulue en OCTETS, donc sizeof(VC) + 1 octet n'ira pas. malloc(sizeof(VC)*2); pour 2 struct, etc... Si tu dois augmenter la taille a l'execution va jeter un oeil du cote des listes chainees ou arbres binaires, a voir selon les besoins. BruNews, ciao...
|
|
vendredi 21 novembre 2003 à 09:33:05 |
Re : Probleme malloc

Vaughn018
|
oui, ou alors essaie d'incrémenter le bon nombre d'octets... sizeof(VC)+sizeof(cps_t)...
Vaughn018, Siaïeï handler...
|
|
vendredi 21 novembre 2003 à 10:27:18 |
Re : Probleme malloc

ceeno
|
Merci pour vos réponse, mais cela ne fonctionne pas, le programme bloque systématiquement.
|
|
vendredi 21 novembre 2003 à 10:42:02 |
Re : Probleme malloc

BruNews
|
Deja une connerie pour moi, je n'avais pas fait attention car j'ai l'habitude de ne JAMAIS mettre le nom de variable dans le sizeof mais le nom de struct. Et oui, sizeof d'un pointeur risque fort de donner 4 au lieu de la taille exacte requise pour la struct. donc: malloc(sizeof(cps_t)*2); pour 2 struct, etc... BruNews, ciao...
|
|
vendredi 21 novembre 2003 à 10:52:10 |
Re : Probleme malloc

Vaughn018
|
exact, meme erreur pour moi: à remplacer par sizeof(cps_t)*nbstruct + sizeof(cps_t) si tu incrémentes la taille
Vaughn018, Siaïeï handler...
|
|
vendredi 21 novembre 2003 à 11:15:04 |
Re : Probleme malloc

ceeno
|
j'ai essayé avec ce que tu m'as dit, et le programme ne plante pas, le seul probleme est k'a chake allocution, les valeurs de VC sont perdues. Voici mon programme test : typedef struct cps { float val; int nb; } cps_t;
affiche( cps_t * VC) { int i; printf("\n{"); for (i=0;i<2;i++) { printf("(%f,%d)",VC[i].val,VC[i].nb); } printf("}"); }
main() { cps_t * VC; VC=(cps_t *)malloc(sizeof(cps_t)); VC[0].val=3.3; VC[0].nb=5; VC=(cps_t *)malloc(sizeof(cps_t)*2); VC[1].val=4.4; VC[1].nb=8; affiche(VC); getch(); }
|
|
|
vendredi 21 novembre 2003 à 11:23:46 |
Re : Probleme malloc

BruNews
|
Pour cela que serait mieux de gerer en liste chainee avec un pointeur Next sinon tu devras passer par du realloc qui demande un gros boulot au memory manager. BruNews, ciao...
|
|
vendredi 21 novembre 2003 à 11:26:44 |
Re : Probleme malloc

ceeno
|
Ok, donc c'est impossible avec malloc seulement. En tout cas,merci à BruNews et Vaughn018 pour vos réponses.
|
|
vendredi 21 novembre 2003 à 11:31:56 |
Re : Probleme malloc

Vaughn018
|
Dans le fond je rejoin Brunews sur le fait que c'est pas très cohérent pour augmenter la taille dynamiquement, le malloc devant en principe etre utilisé une fois seulement. Ya du realloc() possible mais je crois que le mieux à faire est d'implémenter une petite liste chainée : typedef struct cps { float val; int nb; struct cps *suivant; }cps_t;
Pour créer un objet de ce type, tu devrais déclarer une fonction qui déclare un cps_t * dont tu initialises les champs, avec le champ suivant à la valeur NULL. Ensuite lorsque tu crées un nouvel élément, il ne faut pas oublier de rattacher au précédent à l'aide du champ suivant toujours...
Vaughn018, Siaïeï handler...
|
|
Cette discussion est classée dans : probleme, vc, val, cps, malloc
Répondre à ce message
Sujets en rapport avec ce message
Probleme avec VC++6 [ par Toobad ]
Je viens d'installer VC++6 que j'ai déjà un prob--------------------Configuration: Untitled1 - Win32 Debug--------------------Linking...LIBCD.lib(crt0
Probleme d'execution avec VC++ [ par AntiSlash ]
petit probleme incomprehensible (?):j'utilise VC++ 5.0 et je dessine une fenetre. Quand je mets rien dans la fenetre, et que je creer mon .exe, je le
PROBLEME AVEC VC++ [ par Krox68 ]
G commencé a programmer avec visual C++ et jaimerais savoir comment faire pour utiliser la progress barre (la barre de chargement) dans les MFCmerci
Probleme VC 6.0 [ par pheno ]
Bonjour, J ai un probleme avec visual studioLorsque je compile et j execute mon programme avec vc6.0 sous win xp, je n ai pas de probleme d executionL
Allocation dynamique de mémoire (°_°) [ par ceeno ]
Bonjour à tous,Je cherche a crée un tableau dont j'augmente la mémoire à chaque fois que je veu y enregistrer une nouvelle valeur.Mais je n'y arrive p
Probleme VS.NET 2003 ... Prog VC++6 avec fstream.h [ par supergrey ]
Bonjour, je n'arrive pas a compiler un programme fait sous VC++6. l'erreur suivante apparait:error C2065: 'ifstream' : identificateur non déclaréPourt
Probleme d'allocation de mémoire dynamique (malloc/free) [ par PhantomPowaa ]
Bonjour,J'ai un petit probleme avec les fonctions malloc et free dans certains de mes programmes. Apparement le malloc s'effectue correctement, mais a
utiliser les ressources sous vc++ (avec directdraw) [ par mannix ]
bonjour à tous,voilà j'ai un probleme avec les p* de ressources de vc++.J'ai des images en bmp que je veux inclure dans mon exe sachant que ces bitmap
probleme au link avec VC++ [ par marc hash ]
salut a tous,j'ai un probleme a la compilation d'un de mes programmes sur Visual C++ 6.mon programme est lié a une base de donnée réalisée a l'aide de
probleme ( de débutant ) avec VC++ [ par cas74 ]
Salut à tous,j'ai un problême avec VC++:A chaque fois que je compile, il me dit Error Spawning cl.exe !!!!Je débute , alors si quelqu'un pouvait m'aid
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
|