Accueil > Forum > > > > allocaiton dynamique: expliquez moi :)
allocaiton dynamique: expliquez moi :)
samedi 13 décembre 2003 à 20:23:47 |
allocaiton dynamique: expliquez moi :)

warenbe
|
bon je souhaite comprendre l'allocation dynamique en C et je bute dessus depuis une bonne heure deja alors que je suis sur que c'est super simple donc j'ai essaye de faire un bout de code qui lit 10 mots les uns a la suite des autres et les ajoute dans un tableau afin de former une phrase. donc le voila: #include <stdio.h> #include <stdlib.h>
int main(void) { int i; char Phrase[100]; char *Tab[10]; /* declaration des variables. i sera utilise pour les for comme compteur Phrase sera utilisé pour stoquer le mot et Tab[] pour stocker les 10 mots a la suite */
for (i=0;i<10;i++) { Tab[i] =(char *)malloc(10*sizeof(int)); if (Tab==NULL) { printf("Impossible d'allouer la memoire!"); exit(0); }
/* allocation de memoire*/
printf("Entrez un mot :"); scanf("%s", Phrase); Tab[i]=Phrase; /* ajout du mot a la suite de Tab */ }
printf("\nLa phrase obtenue est :\n"); for (i=0;i<10;i++) { printf("%s",Tab[i]); } /* affichage des 10 mots a la suite stocké dans Tab[] */
return 0; }
|
et ce code donne au final 10 fois le meme mot (le dernier tapé) pourriez vous m'aider en corrigeant ce code de maniere a ce que ça marche ou meme en m'expliquand clairement l'allocation dynamique des tableau? (avec un exemple simple ;) ) merci d'avance! waren be
|
|
samedi 13 décembre 2003 à 20:38:50 |
Re : allocaiton dynamique: expliquez moi :)

BruNews
|
for (i=0;i<10;i++) { Tab[i] =(char *)malloc(10*sizeof(int)); 10*sizeof(int)); ????????? c'est pas des espaces de stockage pour tes phrases plutot ? if(Tab==NULL) ???? dans la boucle serait: if(Tab[i]==NULL)
Lit la prase d'abord et alloue a chaque index strlen(phrase)+1 et recopie sur ce pointeur phrase strcpy(Tab[i], phrase); BruNews, ciao...
|
|
samedi 13 décembre 2003 à 22:46:30 |
Re : allocaiton dynamique: expliquez moi :)

warenbe
|
ok alors apres correction:
#include <stdio.h> #include <stdlib.h> #include <string.h>
int main(void) { int i; char Phrase[100]; char *Tab[10]; /* declaration des variables. i sera utilise pour les for comme compteur Phrase sera utilisé pour stoquer le mot et Tab[] pour stocker les 10 mots a la suite */
for (i=0;i<10;i++) { printf("Entrez un mot :"); scanf("%s", Phrase);
Tab[i] =(char *)malloc(10*sizeof(char)); if (Tab[i]==NULL) { printf("Impossible d'allouer la memoire!"); exit(0); }
/* allocation de memoire*/ strcpy(Tab[i], Phrase); /* ajout du mot a la suite de Tab */ }
printf("\nLa phrase obtenue est :\n"); for (i=0;i<10;i++) { printf("%s",Tab[i]); } /* affichage des 10 mots a la suite stocké dans Tab[] */
return 0; }
|
on testouille... NICKEL! t'es un dieu ;) merci pour tout comme ça j'ai tout pigé ;) me reste plus qu'a inserer une espace entre les mots et c'est gagné! mais ça c'est pas un probleme merci ;)
|
|
samedi 13 décembre 2003 à 22:58:30 |
Re : allocaiton dynamique: expliquez moi :)

BruNews
|
NENNI: Tab[i] =(char *)malloc(strlen(phrase)+1);
10*sizeof(char) risque fort de ne pas suffire pour le strcpy qui suit et qui va tout ecraser. BruNews, ciao...
|
|
samedi 13 décembre 2003 à 23:10:32 |
Re : allocaiton dynamique: expliquez moi :)

warenbe
|
ok pour les exemples que j'ai fais ça marchait sans probleme mais bon... mieux vaut ne pas tenter le diable
|
|
samedi 13 décembre 2003 à 23:14:46 |
Re : allocaiton dynamique: expliquez moi :)

BruNews
|
Et prends par habitude que pour tout malloc doit y avoir le free correspondant. Ajoute la boucle de desallocation. BruNews, ciao...
|
|
samedi 13 décembre 2003 à 23:18:59 |
Re : allocaiton dynamique: expliquez moi :)

warenbe
|
ok free(Tab[i]); :)
merci pour tout!
|
|
Cette discussion est classée dans : dynamique, code, tab, suite, phrase
Répondre à ce message
Sujets en rapport avec ce message
Tableau suite... [ par Niníel ]
Alors voila ma 2ème question de la journée :-PJ'ai un tableau de caractères 64 position: char Tab[64], un compteur: int inCompter et un tableau de 1 p
Prob de modulo ou de code ? [ par NeoZ ]
Salut, je voudrais stocker un nombre dans un tableau, ou tout du moins, stocker chaque chiffre dans une variable, et j'ai fait ce bout de code, mais i
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
Nom de fichier de sortie dynamique [ par saturne_1606 ]
Bonjours a tous!Voila ma fonction :void creer_carnet_vide( ){ string nom_carnet; cout cin >>
demande de code source [ par rose_rosa ]
j'ai besoin d'un program qui support la declaration d'un entier et qui compile des expressions arithmetiques plus la phrase while et la phrase if . m
Pb avec graphe en C++ [ par gargourifahmi ]
Salut à tous,Je suis en train d'implémenter un graphe basé sur les listes d'adjacence.En première étape, j'ai essayé d'initialiser le tableau de point
Demande d'explication a propos d'un code. [ par Strick9 ]
Salut à tous, j'ai obtenu grâce à se merveilleux site ce code sources pour cet énoncés:un programme permettant de donner toute les combinaison suite a
Parsage tableau [ par JAYDEN ]
Bonjour,Désolé de vous déranger mais dans le cadre d'un projet j'ai besoin a un moment donner de parser une suite de binaire et de les stocker dans un
Fonction While multiple [ par oshin ]
Salut tout le monde,J'ai un problème tout bête..Dans mon programme j'ai inclus une fonction "While(1)" donc infini.. le probleme c'est que lorsque le
Livres en rapport
|
Derniers Blogs
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 REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
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
|