comportement d'indexation mixte pour typedef tableau?
Question
J'ai un typedef:
typedef unsigned char MyType[2];
Je passe à une fonction et le résultat est FAIL!
void f(MyType * m)
{
*m[0] = 0x55;
*m[1] = 0x66;
}
void main(void)
{
Mytype a;
a[0] = 0x45;
a[1] = 0x89;
f(&a);
}
La manipulation de variable a
fonctionne sur 1 main()
l'indexation des octets, donc est égal à f
{0x45, 0x89}. Cependant, en fonction sizeof
les actes d'indexation sur 2 octets (le *m[1]
le type).
Donc, en fonction <=>, dans ce cas <=> modifie effectivement la mémoire hors limites.
Pourquoi est-ce, qu'est-ce que j'oublié?
Merci.
La solution
Essayez:
(*m)[1]
au lieu de *m[1]
Autres conseils
Ah juste travaillé dehors après avoir abandonné! Supports Boy, entre parenthèses.
void f(MyType * m)
{
(*m)[0] = 0x55;
(*m)[1] = 0x66;
}
void main(void)
{
Mytype a;
a[0] = 0x45;
a[1] = 0x89;
f(&a);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow