[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: segfault su Debian & su centos 5 no



On 31/12/2012 12:14, emmanuel segura wrote:
> Capisco il tuo consiglio e ti rigranzio, ma comunque non mi spiego
> perche su debian a 64 non funziona invece su una debian a 32bit e su
> centos 32 bit si

Perché la memoria viene assegnata ad un programma in multipli di una
pagina (credo 4K). Quindi quando dichiari un array di 1 elemento ed
altre variabili il compilatore gli dedica *minimo* 4K. Se scrivi li
dentro non succede un segfault (anche se il programma è bacato) perchè
la CPU si accorge degli accessi all'esterno della memoria del processo
solo quando vai fuori dalla pagina. "pa" ha una dimensione (a occhio) di
8 byte (su di una architettura a 32 bit) quindi ne puoi scrivere un po'
prima di finire fuori dalla pagina. Anzi, su di un 32 bit ne puoi
scrivere più di 256 e il programma funziona mentre su di un 64 bit...
*sbang* (la struttura su di un 64 bit occupa più memoria, direi 16 byte
così ad occhio).

federico

-- 
Federico Di Gregorio                         federico.digregorio@dndg.it
Studio Associato Di Nunzio e Di Gregorio                  http://dndg.it
  Gli esseri umani, a volte, sono destinati, per il solo fatto di
   esistere, a fare del male a qualcuno.              -- Haruki Murakami


Reply to: