Accueil > Forum > > > > Déclaration dynamique d'un tableau de chaines de caracteres
Déclaration dynamique d'un tableau de chaines de caracteres
dimanche 18 mai 2003 à 05:14:44 |
Déclaration dynamique d'un tableau de chaines de caracteres

paulien
|
Bonjour à tous ! J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol char** Tableau = new char* [SIZE]; Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! Paulien - La Rochelle - BTS IRIS http://www.iris2004.fr.st
|
|
dimanche 18 mai 2003 à 09:00:10 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

BruNews
|
Classique, tu as un tableau de POINTEURS, faut ensuite allouer pour chacun la memoire. BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Bonjour à tous ! > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > char** Tableau = new char* [SIZE]; > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > Paulien - La Rochelle - BTS IRIS > http://www.iris2004.fr.st
|
|
dimanche 18 mai 2003 à 10:37:15 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

bouba
|
Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? A+. Bouba
------------------------------- Réponse au message : -------------------------------
> Bonjour à tous ! > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > char** Tableau = new char* [SIZE]; > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > Paulien - La Rochelle - BTS IRIS > http://www.iris2004.fr.st
|
|
dimanche 18 mai 2003 à 11:03:40 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

BruNews
|
salut bouba, comment pas correct ??? Il dit bien "TABLEAU de chaines", si c'est le cas ou sont les tableaux char que chaque ptr va referencer ? A moins qu'il n'ait calculer SIZE en rapport ... BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. > Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? > A+. > Bouba > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Bonjour à tous ! > > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > > > char** Tableau = new char* [SIZE]; > > > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > > > Paulien - La Rochelle - BTS IRIS > > http://www.iris2004.fr.st >
|
|
dimanche 18 mai 2003 à 11:06:26 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

Kaid
|
Ce que veux expliquer BruNews et ce qui m'apparait comme la solution du problème: #define SIZE ... #define CHAINE1 ... #define CHAINE2 ... char** Tableau = new char* [SIZE]; Tableau[0]=new char [strlen(CHAINE1) + 1]; strcpy(Tableau[0], CHAINE1); Tableau[1]=new char [strlen(CHAINE2) + 1]; strcpy(Tableau[1], CHAINE2); // Utilisation ... // Libération de la mémoire for(int i=0;i<SIZE;i++) delete [] Tableau[i]; delete [] Tableau; Kaid - kaid.fr.st------------------------------- Réponse au message : ------------------------------- > Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. > Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? > A+. > Bouba > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Bonjour à tous ! > > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > > > char** Tableau = new char* [SIZE]; > > > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > > > Paulien - La Rochelle - BTS IRIS > > http://www.iris2004.fr.st >
|
|
dimanche 18 mai 2003 à 11:25:32 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

BruNews
|
ben voile, on arrive au meme point, alloc des differents espaces pour chaque string et maintenant oui que va tourner. et vive La Rochelle. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > Ce que veux expliquer BruNews et ce qui m'apparait comme la solution du problème: > > #define SIZE ... > #define CHAINE1 ... > #define CHAINE2 ... > > char** Tableau = new char* [SIZE]; > > Tableau[0]=new char [strlen(CHAINE1) + 1]; > strcpy(Tableau[0], CHAINE1); > > Tableau[1]=new char [strlen(CHAINE2) + 1]; > strcpy(Tableau[1], CHAINE2); > > // Utilisation ... > > // Libération de la mémoire > for(int i=0;i<SIZE;i++) > delete [] Tableau[i]; > > delete [] Tableau; > > > Kaid - kaid.fr.st> > ------------------------------- > Réponse au message : > ------------------------------- > > > Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. > > Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? > > A+. > > Bouba > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Bonjour à tous ! > > > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > > > > > char** Tableau = new char* [SIZE]; > > > > > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > > > > > Paulien - La Rochelle - BTS IRIS > > > http://www.iris2004.fr.st > > >
|
|
dimanche 18 mai 2003 à 11:31:59 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

bouba
|
Ouai, en y repensant tu as raison, excuse. A+. Bouba
------------------------------- Réponse au message : -------------------------------
> salut bouba, comment pas correct ??? > Il dit bien "TABLEAU de chaines", si c'est le cas ou sont les tableaux char que chaque ptr va referencer ? > A moins qu'il n'ait calculer SIZE en rapport ... > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. > > Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? > > A+. > > Bouba > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Bonjour à tous ! > > > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > > > > > char** Tableau = new char* [SIZE]; > > > > > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > > > > > Paulien - La Rochelle - BTS IRIS > > > http://www.iris2004.fr.st > > >
|
|
dimanche 18 mai 2003 à 11:34:14 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

Haldwin
|
Juste un dernier ajout pour expliquer pourkoi tu avais ce message "memoire ne peut etre lue"... Ce que tu as fait est un tableau de pointeurs de chaine de char de taille SIZE. Or par defaut le compilateur met dans ces adresses memoires une valeur ( par ex: 0xcdcdcdcd) qui est une adresse memoire non lisible. Voila pourquoi tu as cette erreur... En dynamique, trois choses a faire tout le temps: 1/ Allocation de la memoire utile 2/ Initialisation des valeurs de la memoire à NULL dans le cas de pointeurs. (exactement ton cas) 3/ Ne pas oublier de deallouer proprement sans fuite memoire... Wala, Bon dev, <<-- H@ldwin -->>
|
|
dimanche 18 mai 2003 à 19:52:06 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

paulien
|
Merci a tous de l'aide que vous m'apportez, le probléme est que je ne peux pas definir de constantes, en effet, la taille du tableau doit etre declaree en dynamique, c une variable calculée, et les chaines sont aussi insérées en dynamique dans le tableau (à l'execution et non a la compilation), en fait, je fais un generateur de pages html, qui contiendra un nombre de photos precisé par l'utilisateur, et l'utilisateur entrera lui même les chaines de caractére pour les commentaires de chaque photo, ensuite, lorsque je construit ma page html, je fais une boucle sur le nombre de photos en affichant a chaque fois le commentaire correspondant a la photo. Voila donc le probleme Merci PAulien ------------------------------- Réponse au message : ------------------------------- > ben voile, on arrive au meme point, alloc des differents espaces pour chaque string et maintenant oui que va tourner. > et vive La Rochelle. > BruNews, ciao... > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Ce que veux expliquer BruNews et ce qui m'apparait comme la solution du problème: > > > > #define SIZE ... > > #define CHAINE1 ... > > #define CHAINE2 ... > > > > char** Tableau = new char* [SIZE]; > > > > Tableau[0]=new char [strlen(CHAINE1) + 1]; > > strcpy(Tableau[0], CHAINE1); > > > > Tableau[1]=new char [strlen(CHAINE2) + 1]; > > strcpy(Tableau[1], CHAINE2); > > > > // Utilisation ... > > > > // Libération de la mémoire > > for(int i=0;i<SIZE;i++) > > delete [] Tableau[i]; > > > > delete [] Tableau; > > > > > > Kaid - kaid.fr.st> > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. > > > Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? > > > A+. > > > Bouba > > > > > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Bonjour à tous ! > > > > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > > > > > > > char** Tableau = new char* [SIZE]; > > > > > > > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > > > > > > > Paulien - La Rochelle - BTS IRIS > > > > http://www.iris2004.fr.st > > > > > >
|
|
dimanche 18 mai 2003 à 20:08:25 |
Re : Déclaration dynamique d'un tableau de chaines de caracteres

BruNews
|
tu n'es pas oblige d'utiliser des constantes en allocation dynamique. Par contre les new, avis perso, sont valables pour instancier une classe car ils appellent le constructeur mais ici malloc ferait l'affaire en moins de code genere. Si tu vises win32 alors HeapAlloc() sera encore + direct. BruNews, ciao... ------------------------------- Réponse au message : ------------------------------- > Merci a tous de l'aide que vous m'apportez, le probléme est que je ne peux pas definir de constantes, en effet, la taille du tableau doit etre declaree en dynamique, c une variable calculée, et les chaines sont aussi insérées en dynamique dans le tableau (à l'execution et non a la compilation), en fait, je fais un generateur de pages html, qui contiendra un nombre de photos precisé par l'utilisateur, et l'utilisateur entrera lui même les chaines de caractére pour les commentaires de chaque photo, ensuite, lorsque je construit ma page html, je fais une boucle sur le nombre de photos en affichant a chaque fois le commentaire correspondant a la photo. Voila donc le probleme > Merci > PAulien > > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > ben voile, on arrive au meme point, alloc des differents espaces pour chaque string et maintenant oui que va tourner. > > et vive La Rochelle. > > BruNews, ciao... > > > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Ce que veux expliquer BruNews et ce qui m'apparait comme la solution du problème: > > > > > > #define SIZE ... > > > #define CHAINE1 ... > > > #define CHAINE2 ... > > > > > > char** Tableau = new char* [SIZE]; > > > > > > Tableau[0]=new char [strlen(CHAINE1) + 1]; > > > strcpy(Tableau[0], CHAINE1); > > > > > > Tableau[1]=new char [strlen(CHAINE2) + 1]; > > > strcpy(Tableau[1], CHAINE2); > > > > > > // Utilisation ... > > > > > > // Libération de la mémoire > > > for(int i=0;i<SIZE;i++) > > > delete [] Tableau[i]; > > > > > > delete [] Tableau; > > > > > > > > > Kaid - kaid.fr.st> > > > > > ------------------------------- > > > Réponse au message : > > > ------------------------------- > > > > > > > Entre Rochelais j'aimerais bien t'aider mais la je ne pige pas le blem. > > > > Ce que BruNews t'a répondu ne me semble pas correcte du tout, on peut tout à fait faire comme tu as fais sans allouer à chaque espace mémoire une valeur. C'est bien d'ailleur l'interêt de cette méthode. Dis moi quel est ton compilateur ? Sous quel environnement tu programme ? et enfin quel est la taille de ton SIZE ? > > > > A+. > > > > Bouba > > > > > > > > > > > > ------------------------------- > > > > Réponse au message : > > > > ------------------------------- > > > > > > > > > Bonjour à tous ! > > > > > J'essaie de déclarer un tableau de chaines de caractéres dynmiquement, j'ai essayé cette methode, ca ne fonctionne pas, la compilation marche, mais au run time, il y'a une erreur du genre : la memoire ne peut pas etre 'read' ! comme dirais mon prof d'info ! lol > > > > > > > > > > char** Tableau = new char* [SIZE]; > > > > > > > > > > Je ne vois absoluement pas l'erreur que j'ai faite, enfin, c les joies de la programmation !!!! > > > > > > > > > > Paulien - La Rochelle - BTS IRIS > > > > > http://www.iris2004.fr.st > > > > > > > > > >
|
|
Cette discussion est classée dans : dynamique, tableau, caracteres, chaines, déclaration
Répondre à ce message
Sujets en rapport avec ce message
Help : déclaration dynamique de TABLEAU ??? [ par TheBabyCool ]
J'ai besoin d aide, car je ne sais pas comment déclarer dynamiquement un tableau.Merci
allocation dynamique d'un tableau à trois dimensions [ par yo62 ]
Bonjour,J'ai un bête pointeur dans une structure :int *Tableau;et je voudrais que ce pointeur pointe sur une allocation dynamique de type tableau mais
Remplir d'un tableau avec des chaines de characteres sour borlandc++ builder [ par sirvincent ]
bonjour, comme marque dans le titre j'aimerais savoir comment on fait pour remplir un tableau avec des chaines de characteres, kel objet faut'il utili
Probleme Comparaison deux chaines de caracteres [ par Coxis ]
Salut,Bon c pas compliqué j'ai 2 tableaux de caracteres de tailles differentes, je veux les comparer mais ca marche pas...En fait a la base je voulais
tableau dynamique de structures (niveau debutant) [ par SYL666 ]
bonjour,j'ai un petit probleme: j'aimerai definir un tableau dynamique dont la taille n'est connu qu'a l'execution.voila mon code:{ long max; struct
Liste chainé - Tableau dynamique [ par Alucard ]
Bonjour,Je me demandais quel était le meilleur choix à faire entre ces 2 systèmes de gestion de suite d'objets en mémoire.J'hésite un peu car finaleme
tableau dynamique d'objets [ par jonathan100 ]
Bonjour a tous! Voici mon probleme. J'ai une classe Voiture dans Voiture.h. Dans le programme principal, je souhaite créer un tableau qui contiendra d
tableau de chaines de char [ par JaguiJaguar ]
Salut, je suis etudiant.je dois réaliser un prog en c qui lit une chaine de char, la stocke dans la premiere ligne d'un tableau char *tab[n]où n est l
Problème pour passer un tableau dynamique à une fonction [ par muguss ]
Je n'arrive pas à passer parfaitement mon tableau dynamique de type HANDLE à ma fonction afin que cette dernière ajoute un HANDLE au tableau, donc l'a
help ! -> tableau de string 2 dimension dynamique [ par Jiraiya ]
voila, pour mon proG tutore de 2 eme annee je cherche a traiter des chaines de caracteres stockées depuis un fichier.txt jusqu'a un tableau de string,
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|