Re: segfault su Debian & su centos 5 no
- To: debian-italian <debian-italian@lists.debian.org>
- Cc: Davide Prina <davide.prina@gmail.com>
- Subject: Re: segfault su Debian & su centos 5 no
- From: Federico Di Gregorio <fog@dndg.it>
- Date: Tue, 01 Jan 2013 21:10:22 +0100
- Message-id: <50E342AE.1090709@dndg.it>
- In-reply-to: <50E17F1B.7000705@gmail.com>
- References: <CAE7pJ3DdPFfTsZtg1-M01B_gBX1JFDLmf_fiivcg9LcN8Xrsgw@mail.gmail.com> <36307.151.32.166.21.1356948957.squirrel@mail.dm.unipi.it> <CAE7pJ3D2s7kZsaZh5Fse_2Z+Vz7b7hVp=cayxZwpCbAnB6RnsA@mail.gmail.com> <50E17F1B.7000705@gmail.com>
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: