Bonjour,
je me remets doucement au c (avec le compilateur SDCC) sur du vieux matériel (des années 80) et ça pique un peu... Bref, j'ai une fonction à laquelle je passe un tableau de int et que j'utilise dans la fonction pour écrire dedans. Aucun problème . En gros mon code :
Aucun problème. Sauf que mon tableau x contient des unsigned char, donc j'essaie de gagner de la place (car je bosse sur une machine très limitée).
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 void fonction1() { unsigned int x[200]; fonction 2(x); ... } void fonction2(unsigned int px[]) { ... unsigned char toto=0; ... px[y] = (unsigned char) toto; ... }
donc si je mets :
Là ça ne marche plus... pas d'erreur de compil, mais visiblement l'écriture dans le tableau perd les pédales et écrit n'importe où (au point de faire rebooter la machine).
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 void fonction1() { unsigned char x[200]; fonction 2(x); ... } void fonction2(unsigned char px[]) { ... unsigned char toto=0; ... px[y] = (unsigned char) toto; ... }
Bref je ne comprends pas où je me plante...
ps : si je mets dans la declaration de f2 "unsigned char *px" à la place de "unsigned char px[]", c'est pareil...
MERCI
Partager