Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - malloc e l'allocazione dinamica della mamemoria
Forum - C/C++ - malloc e l'allocazione dinamica della mamemoria - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 22:18
Giovedì, 22/07/2010

cavolate [/center]


EDIT:

questo l'ho trovato in rete:

La malloc ha una sintassi simile:
void malloc (int size);
al posto di size specificheremo quanta memoria vogliamo allocare per la nostra
variabile o il nostro array. Come è possibile vedere il valore di ritorno di questa
funzione è void, ovvero ritorna l'indirizzo della zona di memoria allocata in formato
'grezzo'. Per questo motivo è necessario specializzare la funzione attraverso un
operatore di cast.

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. main() {
  4. int *v;
  5. int i,n;
  6. 56
  7. printf ("Quanti elementi vuoi inserire nell'array? ");
  8. scanf ("%d",&n);
  9. v = (int*) malloc(n*sizeof(int));
  10. for (i=0; i<n; i++) {
  11. printf ("Elemento n.%d: ",i+1);
  12. scanf ("%d",&v[i]);
  13. }
  14. for (i=0; i<n; i++)
  15. printf ("Elemento n.%d: %d\n",i+1,v[i]);
  16. }
  17. La scrittura sizeof(int) ritorna



La scrittura sizeof(int) ritorna la dimensione di una variabile int sulla macchina in
uso, quindi n*sizeof(int) è il numero di byte effettivi da allocare in memoria (ovvero
nella malloc diciamo di allocare in memoria n blocchi di dimensione sizeof(int) l'uno
che ospiteranno n variabili intere, e salviamo l'indirizzo a cui comincia questa zona di
memoria nel puntatore v).

È giusto ?

Ultima modifica effettuata da Pitagora il 22/07/2010 alle 22:24
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:20
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da Pitagora:

quindi in realtà quell' 8 sprecato, li andrebbe bene un 4 giusto ?




Che dici?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 22:23
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Pitagora:

quindi in realtà quell' 8 sprecato, li andrebbe bene un 4 giusto ?




Che dici?

ripensandoci cavolate... Ho editato il messaggio !

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:27
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da Pitagora:

... il valore di ritorno di questa funzione è void ...



No. E' "puntatore a void" cioè

void *

Testo quotato

56



A cosa serve questo 56?

Testo quotato


È giusto ?



Il resto sì ... ma perché ci fai leggere questo pezzo ?

Non sarà che vuoi scrivere un "tutorial" sulla malloc e lo vuoi "validato" da noi?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:28
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da Pitagora:

quindi in realtà quell' 8 sprecato, li andrebbe bene un 4 giusto ?



Il tipo int occupa 4 byte.
Per allocare 2 int, servono 8 byte.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6390
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:29
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da Poggi Marco:

Il tipo int occupa 4 byte.



Non sempre.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Segnala al moderatore
Postato alle 22:38
Giovedì, 22/07/2010
@nessuno: no :ot:

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:38
Giovedì, 22/07/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Poggi Marco:

Il tipo int occupa 4 byte.



Non sempre.



8-| Scusate la mia imprecisione!

So che la dimensione dei tipi può variare.
(Non ho voluto ripetere per l' n_esima volta di utilizzare la funzione sizeof )

Ultima modifica effettuata da Poggi Marco il 22/07/2010 alle 22:41
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo