L'interprétation de valgrind erreur Invalide écrire de la taille 4

J'ai récemment essayer de traquer quelques bugs dans un programme, que je suis en train de travailler sur l'utilisation de valgrind, et l'une des erreurs que j'ai eu était:

==6866== Invalid write of size 4
==6866==    at 0x40C9E2: superneuron::read(_IO_FILE*) (superneuron.cc:414)

la ligne fautive # 414 lit

amplitudes__[points_read] = 0x0;

et des amplitudes__ est défini plus haut comme

uint32_t * amplitudes__ = (uint32_t* ) amplitudes;

Maintenant évidemment un uint32_t est de 4 octets de long, donc c'est la taille d'écriture, mais quelqu'un pourrait-il me dire pourquoi il est invalide ?

OriginalL'auteur camelccc | 2012-05-07