Bonjour,
J'essaie de me creer ma propre librairie avec toutes mes petites fonctions assez simples.
J'ai fait un fichier.c avec un bonne partie de ces fonctions (dont celles concernees dans la suite du topic) et le code fonctionne tres bien, je n'est aucun warning.
Mais quand je les ai toutes dissocies pour les compiles en .o j'ai le message d'erreur warning: assignment makes pointer from integer without a cast sur 2 fonctions, pourtant tres simples:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <stdlib.h> #include <unistd.h> char **cpytab(char **src, int y_d, int y_f) { char **dest = NULL; int y; if (y_f == -1) y_f = len_table(src); dest = xmalloc(((y_f - y_d) + 1) * sizeof(*dest)); y = 0; while (y_d < y_f) { dest[y] = malloc((my_strlen(src[y_d]) + 1) * sizeof(**dest)); my_strcpy(dest[y++], src[y_d++]); } dest[y] = NULL; return (dest); }Ca doit etre bidon mais je tourne en rond, aussi, je ne veux pas envoyer l'adresse du char **, mais utiliser le return, car pour une libraire c'est quand meme plus propre, merci de m'eclairer ! Bonne journee.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <stdlib.h> #include <unistd.h> char **side(char **tab, char **epur) { int y_t; int y; int flag_d; int flag_f; int lim; char **tab_clean = NULL; flag_d = is_it_in_epur(tab[0], epur); y_t = len_table(tab) - 1; lim = y_t + 1; if ((flag_f = is_it_in_epur(tab[y_t], epur)) == 1) lim = y_t; tab_clean = cpytab(tab, flag_d, lim); /*erreur ici, qui part si j'enleve l'assignation, pourtant ce n'est pas une erreur de return value, j'ai du mal a comprendre...*/ free_double_table(tab, NULL); return (tab_clean); }
Partager