Bonjour à tous,
Une première pour moi dans ce forum - même si d'autres sujets sur le site m'ont déjà inspirés sur developpez.net : je débute en C et plus particulièrement sur Arduino !
Oui, je sais, peut être aurait il fallu que j'écrive dans le forum Arduino, mais ma question relève plus du C que d'Arduino en lui même
Mon problème est le suivant :
J'ai une fonction "test" qui doit me renvoyer un chiffre puis plusieurs chaines de caractères vers la fonction main(). J'ai donc écrit ce morceau de code mais au final, je n'arrive pas à retrouver les valeurs quand je tente de les ressortir dans main().
J'ai beau chercher un peu partout sur les moteurs de recherche, mais mes connaissances en C et encore plus sur les pointeurs & la mémoire système, sont très limités.
Il me semblait avoir compris que pour retrouver la valeur dans un pointeur, il suffisait de mettre "&" devant le pointeur... Ici ça semble ne pas fonctionner
A noter que la première valeur est un int ("3" que j'ai inclus dans le tableau char... bof, bof...) puis les autres phrases sont bien des Strings.
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 #include <stdio.h> #include <stdlib.h> int *test(){ char *p; p = malloc(4*sizeof(char)); p[0] = 3; p[1] = "Bonjour"; p[2] = "moi"; p[3] = "toi"; return p; } int main(){ char *tab; int i; tab = malloc(4*sizeof(char)); tab = test(); for(i=0;i<4;i++) { printf("%d\n",&tab[i]); } free(tab); return 0; }
Une idée (je suppose que oui !) sur ce qui ne va pas sur mon code ??? Comment puis-je retrouver mes valeurs initiales ?
Merci à tous,
Thierry
Partager