salut à tous.
j’ai des problèmes avec les “char” . en fait je voulais faire une fonction qui initialise un tableau avec “” . Mais le problème c’est que quand j’utilise un seul p[ ] , dans ma 2ème fonction quand je modifie une case toutes les cases sont modifiées .J’ai essayé de faire avec un p2[ ] et là il modifie qu’un seule case. Mais comment je peux faire pour initialisé mon tableau ??car normalement je devrais avoir un tableau de 256 cases. car je peut pas faire de p[ ] a p256 [ ]. si qq1 pourrai m’aider car je vois vraiment pas comment faire
je vous remercie d’avance:)
Que le compilateur va transformer ton code en : tab[i] = strdup§;
Pour mieux comprendre ce que tu fais, essaye de faire ça (ou utilise gdb):
for (int i = 0; i < taille; ++i) printf(“addr(tab[%d]) = 0x%08X”, i, tab[i]);
Tu verras que pour chacun des éléments, tu as la même adresse, ie: tu pointes sur la même chose. Tous les éléments de ton tableau sont égaux parce qu’ils pointent sur la même adresse. D’où l’utilisation de strdup() et consort pour
allouer N octets (strlen§+1) ce qui donne l’adresse q
copier le contenu de p à partir de l’adresse q
avoir un contenu (ici: un pointeur sur un char) différent
Au passage, de la même façon, tu ne peux pas appeler strcat “comme ça”. Il faut que tu t’assures que la chaîne de destination (ou le tableau, ou char* ) puisse contenir les caractères à ajouter. ie: strlen(dest) + strlen(s2) < sizeof(dest). Enfin, tu peux déclarer les variables là où t’en as besoin, pas forcément que en haut de fonction.
Ce n’est pas plus long (sauf éventuellement à la compilation).
Merci pour ta réponse,mais peux tu etre un peu plus explicite s’il te plait car j’ai bien lu ta réponse,et je ne comprend pas comment modifier mon programme pour que ça marche.Est ce que tu pourrais m’aider pour ça?car c’est important,c’est pour un projet et je n’ai plus beaucoup de temps avant de devoir le rendre.
Je te remercie par avance.
Salut!
C’est bien le résultat que je veux obtenir,mais ton code ne compile pas.
En fait,si j’exécute deux fois la fonction codage,je devrais avoir
00
00
00
11
11
11
Si t’as un peu de temps peux tu y jeter un coup d’oeil car je t’avoue que je désespère…
ps:le but final de mon projet c’est de faire la compression et la décompression selon l’algorithme de shannon fano mais là je suis bloquée à l’étape du codage des caractères du fichier qu’on prend en paramètre.
le projet n’a pas été donné il ya longtemps.C’est une matière où on fait des maths mais le projet est à faire en C.Je ne connais pas beaucoup ce langage,je n’ai que quelques bases.
Donc toute aide serait la bienvenue…