pb type passage argument fonction pointeur
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 :
Code:
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;
...
} |
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).
donc si je mets :
Code:
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;
...
} |
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).
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