Недавно я пытался отследить некоторые ошибки в программе, над которой я работаю, используя valgrind, и одна из ошибок, которые я получил была:
==6866== Invalid write of size 4
==6866== at 0x40C9E2: superneuron::read(_IO_FILE*) (superneuron.cc:414)
оскорбительная строка #414 считываний
amplitudes__[points_read] = 0x0;
и амплитуды __определена ранее как
uint32_t * amplitudes__ = (uint32_t* ) amplitudes;
Теперь очевидно, что uint32 _t имеет длину 4 байта, так что это размер записи, но может ли кто-нибудь скажи мне, почему это недействительно?