[Tech] OT: C, linux e la rappresentazione in mem

Claudio Kutufā claudiok@nexusfi.it
Mar 2 Mar 2004 15:55:03 CET


At 09.18 02/03/04 +0100, you wrote:
>On Mon, 01 Mar 2004 16:46:10 +0100
>
> > At 16.35 01/03/04 +0100, you wrote:
>
> > >60*16*2*8000/32 = 480 Kb.
> > >
> >
> >
> > forse sono un po' arrugginito, ma non mi sembra un calcolo esatto.... 32
> > bit sono 4 bytes... non puoi quindi dividere tutto per 32... dovresti
> > dividere per 8
> >
>Rettifica 480.000 č un numero puro, non ha niente ha che fare con le 
>cazzate che ho scritto ieri sera.
>Spero sia solo dovuto al lunedi.
>

non ti preoccupare, anche io mi sono appena "svegliato" ;-)
vediamo se a mente sveglia ragiono meglio (speriamo), rifaccio il calcolo 
perchč non vorrei che altrimenti ti si sbarellasse l'allocazione dinamica 
della memoria:

60*16*2*8000 = 15360000 bit e mi sembra corretto

480000 non sono nč bit nč bytes e nemmeno numero puro, bensė unsigned long 
(32), e di questo valore (ovviamente in base al tipo di dati che usi...) 
devi tenere conto in fase di allocazione della memoria

----------------------------------------------------------------------------------------------------

Per quanto riguarda l'allocazione dinamica della memoria:
questo č un esempio (funzionante) da un mio programma,
in cui non potevo allocare la matrice tutta insieme :

if(( StringaNew[NumeroRiga] = (char *)malloc(lunghezza)) == NULL)
{
         printf("Not enough memory to allocate buffer\n");
         exit(1);  /* terminate program if out of memory */
}
strcpy(StringaNew[NumeroRiga], &stringa[5]);


qui invece allocavo una intera matrice di char:

if(( MatriceSBN[][] = (char *)malloc(num_righe_sbn*num_colonne_sbn)) == NULL)
{
         printf("Not enough memory to allocate buffer\n");
         exit(1);  /* terminate program if out of memory */
}
strcpy(MatriceSBN[NumeroRigaSBN], &stringa_sbn[5]);

non sarebbe necessaria la notazione MatriceSBN[][], in quanto MatriceSBN č 
un semplice puntatore, ma di solito aiuta (i poveri mortali come me) a 
ricordare cosa si sta usando

se hai bisogno, batti un colpo :-)

ciao
Claudio




+++++++++++++++++++++++++++++++++++++++++++++++++++++
Ing. Claudio Kutufa'
NEXUS SISTEMI INFORMATIVI S.P.A.
e-mail personale: claudiok@nexusfi.it
tel. cellulare: 335 5859567
Sede Oper.va : Via Dante da Castiglione, 33
Tel. : +39 055 229413 Fax : +39 055 229785
50125 Firenze - Italy
Sede Amm.va : Via Panciatichi 40/11
Tel. : +39 055 4222030 Fax : +39 055 4376670
50100 Firenze - Italy
Nexus home page: www.nexusfi.it
+++++++++++++++++++++++++++++++++++++++++++++++++++++




Maggiori informazioni sulla lista flug-tech