Possible en double:
C: How come an array's address is equal to its value?Utiliser memcpy avec le nom du tableau
I Code a récemment trouvé dans mon projet qui appelle memcpy
avec l'adresse du nom du tableau
int a[10];
memcpy(&a, &b ,sizeof(a));
Etonnamment (pour moi) ça a l'air de marcher. Si je le change en memcpy(a,b,sizeof(a));
?
Est-il autorisé par la spécification C++? Quelqu'un peut-il me diriger vers des ressources sur ce comportement? Y a-t-il des pièges?
J'ai aussi vérifié
assert((void*)&a == (void*)a);
et &a
est en effet le même que a
(en plus de son type).
J'ai vérifié ce comportement dans VS2005, VS2008 et VS2010.
Oui, le message que vous avez lié donne une bonne réponse. – Kirill