Problème avec char et strcat en c
Fermé
pupuce86
Messages postés
5
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
24 avril 2008
-
22 avril 2008 à 14:57
pupuce86 Messages postés 5 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 - 22 avril 2008 à 21:25
pupuce86 Messages postés 5 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 24 avril 2008 - 22 avril 2008 à 21:25
A voir également:
- Problème avec char et strcat en c
- Coco char - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Coco chat connexion sur mobile, le tchat est fermé ? ✓ - Forum Réseaux sociaux
- Site coco chat (incitation a payer) ✓ - Forum Vos droits sur internet
- If char ✓ - Forum Programmation
6 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
22 avril 2008 à 16:39
22 avril 2008 à 16:39
j'ai pas trop compris ton probleme...
tu voudrais faire quoi exactement ? tu peux donner un exemple
tu voudrais faire quoi exactement ? tu peux donner un exemple
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
22 avril 2008 à 16:59
22 avril 2008 à 16:59
Bonjour,
Mype a été plus rapide que moi, moi non plus je ne comprends pas très bien ce que tu veux faire, ton code est assez surprenant. Tu l'as fait tourner ?
Mype a été plus rapide que moi, moi non plus je ne comprends pas très bien ce que tu veux faire, ton code est assez surprenant. Tu l'as fait tourner ?
pupuce86
Messages postés
5
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
24 avril 2008
22 avril 2008 à 17:14
22 avril 2008 à 17:14
en fait j'ai fais 2 fonctions, la 1ere qui doit initialiser un tableau avec une chaine de caractere = "" et la 2ème fonction qui doit rajouter "1" à la moitié du tableau et "0" a la 2eme moitié. le probleme c'est que quand j'utilise un p[ ] dans la 1ère fonction lors de l'affichange chaque case a 6 valeurs "000111" alors qu'elle devrait en avoir qu'une, ou la valeur"1" ou la valeur"0". donc j'ai fais un test et j'ai essayé avec un p2 [] (que j'ai initialisé a "2") et dans cette case j'obtiens bien ce que je veux. Dans mon programme normalement je devrais avoir 256 cases. Mais comme je peux pas faire 256 p[]
Le but de la fonction c'est donc que je passe un tableau et il rajoute un "1" a la moitié du tableau et un "0"
a la 2eme moitié. cette fonction sera appelé par une autre fonction qui l'appellera avec la moitié du tableau. c'est a dire a chaque fois on divise le tableau en 2 et on rajoute des "1" et des "0".à la fin dans chaque case je dois avoir des chaines de binaires. par dans la 1ere case du tableau "0001" .j'ai mis [2560] car quand j'ai testé avec [256] il m'
affiché des erreur de segmentation. ( je sais pas pour quoi )
J'espère que c'est un peu plus claire maintenant
est ce que vous pouvez m'aider s'il vous plait car je suis bloquée.
je vous remercie pour votre réponse
ps:le but ultime de mon programme(qui comporte d'autres fonctions)est de réaliser la compression et la décompression
selon la méthode de shannon fano.
Le but de la fonction c'est donc que je passe un tableau et il rajoute un "1" a la moitié du tableau et un "0"
a la 2eme moitié. cette fonction sera appelé par une autre fonction qui l'appellera avec la moitié du tableau. c'est a dire a chaque fois on divise le tableau en 2 et on rajoute des "1" et des "0".à la fin dans chaque case je dois avoir des chaines de binaires. par dans la 1ere case du tableau "0001" .j'ai mis [2560] car quand j'ai testé avec [256] il m'
affiché des erreur de segmentation. ( je sais pas pour quoi )
J'espère que c'est un peu plus claire maintenant
est ce que vous pouvez m'aider s'il vous plait car je suis bloquée.
je vous remercie pour votre réponse
ps:le but ultime de mon programme(qui comporte d'autres fonctions)est de réaliser la compression et la décompression
selon la méthode de shannon fano.
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
22 avril 2008 à 17:55
22 avril 2008 à 17:55
ok j'ai mieux compris ce que tu veux faire...
essaye ça
essaye ça
#include <stdio.h> #include <math.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <stdlib.h> #include<sys/stat.h> void initialisation(char *tab[],int taille){ int i; char p=' '; for(i=0; i<taille; i++){ *tab[i] =p; } } void codage(){ char *tab[2560]; int i,j; int k=3; char zero='0'; char un='1'; for(i=0;i<2560;i++) tab[i]=(char *) malloc(100*sizeof(char)); initialisation(tab,6); for(i=0; i<k ; i++){ *tab[i]= zero; } for(j=k; j < 6 ;j++){ *tab[j]= un; } for(i=0;i<6;i++){ printf("%c",*tab[i]);} printf("\n"); } int main (int argc, char ** argv){ codage(); return (EXIT_SUCCESS); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
22 avril 2008 à 21:21
22 avril 2008 à 21:21
il vaut mieux que tu repondes sur le forum pour que tous le monde puisse profiter...
puisque dans chaque case tu doit avoir une chaine
essaye ça
pour ton probleme d'erreur de segmentation quand tu declares ton tableau en variable globale c'est surement parce que tu utilises un tableau dynamique mais tu ne lui alloue pas de memoire il faut que tu utilises des malloc...
puisque dans chaque case tu doit avoir une chaine
essaye ça
#include <stdio.h> #include <math.h> #include <string.h> #include <sys/types.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <stdlib.h> #include<sys/stat.h> void initialisation(char *tab[],int taille){ int i; char p[2560]=""; for(i=0; i<taille ; i++){ tab[i] =p; } } void codage(){ char *tab[2560]; int i,j; int k=3; char *zero="0"; char *un="1"; for(i=0;i<2560;i++) tab[i]=(char *) malloc(100*sizeof(char)); initialisation(tab,6); for(i=0; i<k ; i++){ tab[i]=zero; } for(i=k; i < 6 ;i++){ tab[i]=un; } for(i=0;i<6;i++){ printf("%s\n",tab[i]);} } int main (int argc, char ** argv){ codage(); return (EXIT_SUCCESS); }
pour ton probleme d'erreur de segmentation quand tu declares ton tableau en variable globale c'est surement parce que tu utilises un tableau dynamique mais tu ne lui alloue pas de memoire il faut que tu utilises des malloc...
pupuce86
Messages postés
5
Date d'inscription
mardi 22 avril 2008
Statut
Membre
Dernière intervention
24 avril 2008
22 avril 2008 à 21:25
22 avril 2008 à 21:25
Merci pour toutes les réponses.Je vais essayer si ça marche et je vous tiens au courant.
Merci encore ;-)
Merci encore ;-)