[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