D4rkAng3l
25-04-2005, 16:42
Mi sono messo a studiare il C perchè prima o poi l'esame di programmazione lo dovrò dare....
Da quello che ho capito quando invoco la funzione calloc gli passo il numero di elementi di un array da allocare dinamicamente e la dimensione degli elementi che lo compongono e mi restituisce il puntatore all'inizio di tale array...capito bene?
sul manuale fà un esempio:
Funzione che restituisce un puntatore a un array allocato dinamicamente contenente 100 valori float...vabbè apparte che nell'esempio non c'è il main ma solo la funzione ci sono delle cose che non ho capito...
#include <stdlib.h>
#include <stdio.h>
float *get_mem(void){
float *p; // p è un puntatore ad un elemento di tipo float
/*Dico di allocare il vettore e metto in p l'indirizzo dell'inizio del vettore */
p=calloc(100, sizeof(float))
if(!p){
printf("Errore di allocazione\n");
exit(1);
}
return p; // Restituisci alla funzione chiamante l'indirizzo di inizio del vettore
}
La cosa che non ho capito è perchè la funzione la chiama:
float *get_mem(void)
ma che vuol dire che non riceve come argomenti alcun valore e restituisce un puntatore ad un dato di tipo float?
Da quello che ho capito quando invoco la funzione calloc gli passo il numero di elementi di un array da allocare dinamicamente e la dimensione degli elementi che lo compongono e mi restituisce il puntatore all'inizio di tale array...capito bene?
sul manuale fà un esempio:
Funzione che restituisce un puntatore a un array allocato dinamicamente contenente 100 valori float...vabbè apparte che nell'esempio non c'è il main ma solo la funzione ci sono delle cose che non ho capito...
#include <stdlib.h>
#include <stdio.h>
float *get_mem(void){
float *p; // p è un puntatore ad un elemento di tipo float
/*Dico di allocare il vettore e metto in p l'indirizzo dell'inizio del vettore */
p=calloc(100, sizeof(float))
if(!p){
printf("Errore di allocazione\n");
exit(1);
}
return p; // Restituisci alla funzione chiamante l'indirizzo di inizio del vettore
}
La cosa che non ho capito è perchè la funzione la chiama:
float *get_mem(void)
ma che vuol dire che non riceve come argomenti alcun valore e restituisce un puntatore ad un dato di tipo float?