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

Re: segfault su Debian & su centos 5 no



On 31/12/2012 13:03, Davide Prina wrote:
> On 31/12/2012 12:14, emmanuel segura wrote:
> 
>>  non mi spiego perche
>> su debian a 64 non funziona invece su una debian a 32bit e su centos
>> 32 bit
> 
> attenzione, non funziona. Sembra funzionare, ma non funziona.
> 
> Il segfault non è detto che avvenga sempre allo stesso modo e nello
> stesso punto.
> 
>> typedef struct Name {
>>         char *name;
>>         int id;
>> } name_t;
>>
>> name_t pa[];
> 
>>                  pa[i].name = "Pippo";
> 
> per esempio sai cosa fa quest'istruzione?
> Di certo non inserisce in name la stringa "Pippo\0". name è una
> variabile che contiene un numero: un indirizzo di memoria.

In realtà questo è valido. Il compilatore mette la stringa "Pippo" nel
segmento "TEXT" del programma e l'istruzione:

pa[i].name = "Pippo";

mette in "name" (che è un puntatore a char, corretto) il puntatore alla
stringa "Pippo" memorizzata.

federico

-- 
Federico Di Gregorio                         federico.digregorio@dndg.it
Studio Associato Di Nunzio e Di Gregorio                  http://dndg.it
          The reverse side also has a reverse side.  -- Japanese proverb


Reply to: