Accueil > Forum > > > > Probleme de chaine
Probleme de chaine
jeudi 15 novembre 2007 à 07:18:52 |
Probleme de chaine

jb212121
|
Bonjour à tous, Je suis en train de faire un petit programme en c et je souhaiterai utilisé un pointeur de caractere mais dev cpp me sort cette erreur : E:\Dev-Cpp\*****[Warning] excess elements in array initializer Voici ce que j'utilise : char *chemin[3] = {"chaine1", "chaine2", "chaine3", "chaine4"}; Ce qui est bizzard c'est qu'au debut sa marché tres bien et d'un coups sa marche plus. Merci
|
|
jeudi 15 novembre 2007 à 08:16:57 |
Re : Probleme de chaine

mad_love_disease
|
Tu specifie la taille de ton tableau de charactere a 3, et tu l`initialise avec 4 elements, donc le compilateur te dit que l`initialisation de ta liste comporte trop d`elements: donc soit tu modifie la taille de ton tableau a 4, soit tu enleve chaine 4 de ton initialisation. char *chemin[4] = {"chaine1", "chaine2", "chaine3", "chaine4"}; char *chemin[3] = {"chaine1", "chaine2", "chaine3"}; Mad Love Disease
|
|
jeudi 15 novembre 2007 à 16:14:16 |
Re : Probleme de chaine

jb212121
|
Je croyais qu'on devait compter le 0 donc: chemin[0] chemin[1] chemin[2] chemin[3]
Cela fais bien 4 éléments je me trompe?
|
|
jeudi 15 novembre 2007 à 16:30:10 |
Re : Probleme de chaine

fatenov
|
oui c'est bien cela, en c on commence les indices à partir de zero. Mais dans la déclaration des tableaux, on fait avec le nombre l'élements. Essai ce que t'as proposé Mad. 
|
|
jeudi 15 novembre 2007 à 16:56:36 |
Re : Probleme de chaine

mad_love_disease
|
Bonsoir a tous,
Effectivement, vous avez tous les deux raisons. jb212121 tu a bien 4 elements dans ton exemple donc tu declarera ton tableau ainsi: char * tab[4];
Les indices et la taille sont deux choses differentes, c pourquoi lorsque tu parcoures un tableau tu as:
for( n = 0 ; n < taille de ton tableau ; n++ )
et non pas n < ou =, dans ce cas la tu essayeras d`avoir l`element taille +1 de ton tableau. C`est exactement le meme probleme lors de l`initialisation (dans ton premier message)
@ +
|
|
jeudi 15 novembre 2007 à 20:06:29 |
Re : Probleme de chaine

deck_bsd
|
Yop, aie aie aie char *chemin[3] = {"chaine1", "chaine2", "chaine3", "chaine4"}; c'est quoi ça ? Dans ce genre de situation il faut que tu te représente ce que c'est. Ici tu à un tableau de pointeur char * on est bien daccord. Maintenant imagine, tu fait chemin[0] , il contient quoi ? nulle ne le sait, en fait la tes pointeur de chaine de caractère ne pointe sur rien. Il faut donc allouer de la mémoire. 2 possibilité s'offre à toi si tu n'aime pas ou est pas encore au point avec les alloc de mem : char chemin[3][11]; voila la tu as un tableau qui peut contenir 3 chaines de caractère de 10 caractère max (oui n'oublie pas le 0 de fin de chaine). La deuxième, et la meilleur dans ce cas, l'allocation dynamique : for(i=0;i<3;++i) { chemin[i] = (char *) malloc(sizeof(char)*11); } par exemple. Voila tu as tt les atous en main. ++ deck_bsd ___________________________________ [ [ Lien ]]
|
|
jeudi 15 novembre 2007 à 20:42:09 |
Re : Probleme de chaine

fatenov
|
Bravo deck_bsd, t'es le plus attentif ( j'ai pas fait atention pour le char*)  Mais je voulai juste ajouter à (jb21^3) que la méthode de malloc est intéressante car la taille de la chaîne peut être variable pour chaque chaîne en fonction de la longueur du mot que tu veux y mettre (le 11 dans notre cas qui pourra être le nom d'une variable dans ton prog) au contraire d'un tableau statique là où tout est fixé à la déclaration du tableau.
|
|
jeudi 15 novembre 2007 à 20:58:16 |
Re : Probleme de chaine

SAKingdom
|
deck_bsd >> faire char *chemin[3] = {"chaine1", "chaine2", "chaine3"}; fonctionne parfaitement. chemin[0] pointe sur la première chaine entrée donc ici, "chemin1". La solution a été apporté. Si chemin contien 4 chaines, alors chemin doit pouvoir contenir 4 pointeur. char *chemin[4] = ... ou alors char *chemin[] = ... C++ (@++)
|
|
jeudi 15 novembre 2007 à 20:59:11 |
Re : Probleme de chaine

SAKingdom
|
Oups, la première chaine entré n'est pas "chemin1" mais "chaine1" C++ (@++)
|
|
jeudi 15 novembre 2007 à 21:10:09 |
Re : Probleme de chaine

fatenov
|
char * c'est un pointeur sur char (UN caractère) non pas un pointeur sur string (chaîne de caractères). Donc si on fait ça : char *chemin[3] = {"chaine1", "chaine2", "chaine3"}; on aura chemin[0]=c chemin[1]=h chemin[2]=m et ainsi de suite. Si on veut accéder à "chaine1" et "chaine2"ce sera dans une autre variable char* ch1[8], *ch2[8]; /* faire attention au mysrérieux 0 de fin de chaîne */ for(i=0;i<8;i++) {ch1[i]=chemin [i]; ch2[i] = chemin [8+i]; }
|
|
Cette discussion est classée dans : probleme, chaine, dev, cpp
Répondre à ce message
Sujets en rapport avec ce message
GLUI et DEV CPP [ par Flamby51 ]
Salut a tous, bon j'ai un leger probleme, j'ai deja parcouru la plupart des forums, et certains abordent mon probleme mais aucun ne peut y remedier ap
Probleme avec GetComputerNameEx sous Dev cpp [ par Menontona ]
J'ai un probleme de compilation avec Dev-cpp, lorsque j'appelle GetComputerNameEx il met Function undeclared. Je met la partie interressante:#include
aideeeeeeeeeee svp , probleme sous dev cpp [ par banjo12 ]
Boujour tout le monde, voila je devellope un projet pour mon iut où je suis etudiant et j'ai besoin d 'une librairie rtp pour faire passer de la video
probleme sous dev-cpp :s louche [ par deck_bsd ]
Bonjour, Quelqun peut il me dire pourquoi la ligne de code : strcat(D_message,D_ptdayweek[D_tmt->tm_wday]); Fonctionne sour borland et non sous dev
probleme avec Dev cpp(premiere réalisation fenêtre) [ par developvbdebut ]
Bonjour tout le mondeJe n'arrive pas à ouvrir un nouveau projet en selectionnant gui\gtk +.En le faisant l'option projet c et bloqué, seul le proget c
Sockets C et Dev-cpp [ par shadow1779 ]
bonjour, je voudrai savoir de personne qui font de la programmation reseau en C avec les sockets C s'ils ont un problemes avec Dev-c++, moa j'ai pas m
Probleme de compilation Qt avec Dev-cpp [ par julien_boss ]
Bonjour, bon le probleme n'est pas que je n'arrive absolument pas à compiler Qt avec dev-cpp. Seulement, à la compilation du tutorial n°7 de la docum
Calcul numérique avec Dev cpp [ par ffnajia ]
Bonjour à tous,Est ce que c'est possible de faire du calcul numérique avec dev cpp? on peut trouver des solveur pour résoudre des équations différenti
Probleme de debug avec dev-cpp [ par xcxl ]
Bonjour, hier jai voulu debuger mon prg (premiere fois) mais apres avoir cliker sur debug, il me propose de generer les info de debuggage, jaccepte ,
ressources dev-cpp [ par deck_bsd ]
Bonjour,Voila je veu mettre une image dans un controle static. Tout vas bien pour ce qui est des OBM (OBM_CHECK,...) tout s'affiche parfaitement. Le p
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
|