Accueil > Forum > > > > pointeurs char, char* et tableau
pointeurs char, char* et tableau
vendredi 8 septembre 2006 à 22:49:32 |
pointeurs char, char* et tableau

bbear
|
'lut j'ai un probleme avec des chaines de caracteres, tableaux de chaines et autres joyeusetées c'est pour un hiscore. je ne sais pas si la manière de faire est la bonne, ou si il y en a de meilleur, mais avec ma methode, je n'arrive pas à copier dans le tableau de char tel qu'il est fait. je suis tout ouïe pour une autre solution voilà mes datas : les scores sont préremplis au demarrage ou chargé si fichier de scores. char *names[]={ "NOM JOUEUR 1", "NOM JOUEUR 2", "............................", etc... il y a 10 noms }; l'affichage, la sauvegarde... fonctionnent en utilisant le contenu par names[i] mais quand je copie ça marche pour les noms de 0 à 4, 6 et 8, mais pour les noms 5,7 ou 9 il recopie le nom dans les 5 et 7 si noms 9 modifiés, ou 7 et 9 si le 5, etc... et encore, la copie fonctionne. mais j'ai essayé en mode console, et là ça crash avec strcpy, strncpy, sprintf ... où est ma bévue ? faut-il s'y prendre comme ça ? je doute... merci d'avance, car je suis completement sec 
|
|
vendredi 8 septembre 2006 à 23:22:51 |
Re : pointeurs char, char* et tableau

nightlord666
|
Il ne faut pas oublier d'allouer la mémoire avant de copier quelque chose dedans :
names[0] = new char[TAILLE_NOM_MAX]; strcpy(names[0], "Chaine à copier");
Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
|
|
vendredi 8 septembre 2006 à 23:45:58 |
Re : pointeurs char, char* et tableau

bbear
|
euh...oui mais je crée pas un nouvel élément, il existe déjà, non ?? ôtez moi d'un doute j'ai : char *names[]={ "TEXTE", "TEXTE" }; names[0]="TEXTE" . quand je l'affiche il existe bien !? non ? en plus la taille reste la meme (en C, "new" ça marche ?? moi non)
|
|
vendredi 8 septembre 2006 à 23:48:32 |
Re : pointeurs char, char* et tableau

nightlord666
|
Tu utilise malloc en C. La, pour le moment, ton strcpy essaie de placer des caractères à une zone mémoire inaccessible, car non initialisée.
D'ailleurs, il est déconseillé d'utiliser names[0] = "BLABLA"; Je ne suis même pas sur que ça marche...
Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
|
|
samedi 9 septembre 2006 à 00:10:13 |
Re : pointeurs char, char* et tableau

bbear
|
en en tête de programme j'ai char*names[]={"TEXTE","TEXTE"}; ça ne marche pas??? pourtant tout s'affiche et meme se sauvegarde
je precise que je ne fais pas names[0]="texte" dans le programme lui meme
alors là, je cromprends plus rien... pourtant quand je relis mon bouquin de C, il est bien indiqué dans les déclarations que l'on peut faire char chaine="texte"; comme on fait int valeur=10;
|
|
samedi 9 septembre 2006 à 00:23:02 |
Re : pointeurs char, char* et tableau

bbear
|
bon, avec malloc ça marche, mais j'en suis tout retourné...
|
|
samedi 9 septembre 2006 à 00:41:34 |
Re : pointeurs char, char* et tableau

luhtor
|
Réponse acceptée !
Non tu as raison, ca c'est correct:
char *names[]={
"NOM JOUEUR 1",
"NOM JOUEUR 2",
"............................",
etc... il y a 10 noms
};
Tu initialises sur la meme ligne, donc le pointeur est alloué
localement automatiquement. Donc pas besoin ni de malloc ou de new.
|
|
samedi 9 septembre 2006 à 00:58:35 |
Re : pointeurs char, char* et tableau

bbear
|
ha! hmmm... donc j'en reviens à ma premiere question avec mon principal probleme : comment ecrire dans un tel tableau de char j'explique : c'est un tableau de nom pour un hiscore on saisie le nom (taille pre determinée) dans un buffer (char buffer[taille]) et je veux copier ce buffer dans la table de nom à la position N donc dans names[N] : strncpy(names[N],buffer,taille);
c'est pas que ça marche pas, mais il y a un drôle de bug qui n'apparait pas pour toutes les lignes ! du names[0] à names[4] et 6,8 pas de probleme. mais quand je fais de meme avec names[5], names[7] ou names[9], alors je me retrouve avec un tableau de nom comme cela : "TEXTE0" "TEXTE1" "TEXTE2" "TEXTE3" "TEXTE4" "SAISIE5" <- ici ce que j'ai copié "TEXTE6" "SAISIE5" <- il se recopie ici !! "TEXTE8" "SAISIE5" <- et ici !!!
j'hallucine ou bien...
|
|
samedi 9 septembre 2006 à 01:45:13 |
Re : pointeurs char, char* et tableau

aldoniel
|
si ça marche pas, c'est un bug cqfd ;-)
ton strncpy(names[N],buffer,taille); doit écrire n'imorte où
tu peux essayer un code comme ça
char *names[]={
"NOM JOUEUR 1",
"NOM JOUEUR 2",
"............................",
};
char *pchar=names[1]; //éditer joueur 2
strncpy(pchar,buffer,taille);
au moins il ne pourra pas déborder sur les autres lignes
|
|
samedi 9 septembre 2006 à 02:11:36 |
Re : pointeurs char, char* et tableau

bbear
|
ça bug encore, la meme chose c'est dingue
je crois que je vais faire autrement, mais comment... peut etre avec un struct
|
|
Cette discussion est classée dans : tableau, noms, chaines, char, pointeurs
Répondre à ce message
Sujets en rapport avec ce message
passer un tableau de pointeurs en parametres [ par achirane ]
bonjour,je debute en C (dur..) et j'ai un pb qui va surement vous faire ricaner ;-) :je voudrais passer un tableau de pointeurs en parametre a ma fonc
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
Pointeurs et tableau de pointeurs [ par dragon3x6 ]
Salut à la communauté des developpeurs C,j'essai d'écrire un bout de code qui enregistre une liste de mots dans une structure de type arbre.Lorsqu'un
tableau de chaines [ par ashboody ]
const char * Ini_GetPrivateProfileString (...);mytype myfunc (char **RegisteredChannels_Name);{strcpy( RegisteredChannels_Name[ChannelIndex],
Saisie chaines caractère en boucle en C [ par oim09 ]
Voila alors j'ai rencontré un problème que je n'avai jamais rencontrer. Je veu faire une fonction qui rempli un tablaeu avec des chaines de caractères
chaines de caractères dans un tableau char a 2 dimensions [ par deck_bsd ]
Bonjour a tous, voila J'ai un fichier qui contient des mots (1sur une ligne différente) et je voudrai bien copier chacun de ces mots dans un tableau
tableau de pointeurs vers des structures [ par Kurpeus1 ]
Bonjour et joyeuses fêtes a tous.Je voudrais créer un tableau de pointeurs vers des structures (de taille identiques) mais je ne sais pas trop comment
Probleme avec des pointeurs [ par KissyFroth ]
Voici mon code : char * t1 = new char [30]; char * t2 = new char [40]; //Les chiffres ne sont pas exact mai c pas grave cout << strlen(t1) << "\n"; c
tableau des caractere en C [ par themahg ]
ThemahG, Japon toujours! j'ai un problème avec mon programme il bloque à partir de la fonction si dessous:ai
tableau de caractère [ par sakjimh ]
salut à tous voila j'ai un petit problème: je veux crée un tableau de caractère avec une boucle for et l'afficher caractère par caractère:#include #in
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
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
|