Tout d'abord joyeux noël pour ceux qui le fête, pour les autres bien... joyeux 25 décembre!
Je débute, alors si vous avez quelques conseils, outre ceux en relation avec ma problèmatique, ne vous gênez pas.
Voilà j'essais de lire une chaine de caractère d'une taille dynamique. Donc pour se faire je me suis fait une fonction joliment nomméegetstr et lorsque je récupaire la chaine tout se passe bien. Parcontre avec le débugger de C-Free (exellent éditeur) j'ai remarqué qu'en dehors de getstr la variable redevient à sa valeur initiale (c-a-d rien, null, 0x0).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 main.h #include <stdio.h> #include "string.h" int main(int argc, char** argv);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 main.c #include "main.h" int main(int argc, char** argv) { char* str; getstr(str); printf("\t\"%s\"\n", str); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 string.h #include <stdlib.h> unsigned int strlen(const char* str); unsigned int getstr(char* str);Bref je suis un peut perdu, merci d'avance à ceux qui pourrons m'éclairer de leur savoir .
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
23
24
25
26
27
28
29
30
31
32
33
34
35 string.c #include "string.h" unsigned int strlen(const char* str) { unsigned int i; i = 0; while (str[i] != '\0') { i++; } return i; } unsigned int getstr(char* str) { unsigned int i; char c; i = 0; str = malloc(sizeof(char)); while ((c = getchar()) != '\n') { str[i++] = c; str = realloc(str, ((i + 1) * sizeof(char))); } str[i] = '\0'; return i; }
Partager