Pitagora (Member)
Expert
Messaggi: 367
Iscritto: 12/06/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++ |
#include <stdio.h> #include <stdlib.h> main() { int *v; int i,n; 56 printf ("Quanti elementi vuoi inserire nell'array? "); scanf ("%d",&n); v = (int*) malloc(n*sizeof(int)); for (i=0; i<n; i++) { printf ("Elemento n.%d: ",i+1); scanf ("%d",&v[i]); } for (i=0; i<n; i++) printf ("Elemento n.%d: %d\n",i+1,v[i]); } 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 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6390
Iscritto: 03/01/2010
|
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à. |
|
Pitagora (Member)
Expert
Messaggi: 367
Iscritto: 12/06/2010
|
Postato originariamente da nessuno:
Postato originariamente da Pitagora:
quindi in realtà quell' 8 sprecato, li andrebbe bene un 4 giusto ? |
Che dici? |
ripensandoci cavolate... Ho editato il messaggio ! |
|
nessuno (Normal User)
Guru^2
Messaggi: 6390
Iscritto: 03/01/2010
|
Postato originariamente da Pitagora:
... il valore di ritorno di questa funzione è void ... |
No. E' "puntatore a void" cioè
void *
A cosa serve questo 56?
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à. |
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
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.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6390
Iscritto: 03/01/2010
|
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à. |
|
Pitagora (Member)
Expert
Messaggi: 367
Iscritto: 12/06/2010
|
@nessuno: no
|
|
Poggi Marco (Member)
Guru
Messaggi: 969
Iscritto: 05/01/2010
|
Postato originariamente da nessuno:
Postato originariamente da Poggi Marco:
Il tipo int occupa 4 byte. |
Non sempre.
|
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 |
|