Discussione: [C] Problema puntatori
View Single Post
Old 28-04-2005, 18:46   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Cittā: Roma
Messaggi: 2682
[C] Problema puntatori

Ciao, ho fatto un semplice programma che alloca dinamicamente un array di 100 interi, poi vorrei riempire questo array con un ciclo for ma qualcosa non funziona bene ed č come se mi inizializzasse a 0 solo il rpimo elemento (e quindi tutto l'array risulta essere inizializzato a 0)...mi sā che c'č qualcosa che non vā nell'aritmetica dei puntatori ma non capisco cosa...

#include <stdlib.h>
#include <stdio.h>

/* Non riceve alcun parametro ed emette un puntatore a float */
int * get_mem(void);

int main(void){

int i;
int *puntatore; // Puntatore al primo valore float dell'array allocato

/* Alloca la memoria dinamicamente e metti il valore del puntatore uscente
dalla funzione get_mem nellaa variabile puntatore */

puntatore = get_mem();
printf("%p\n", puntatore);

for(i=0; i<=100; i++){
*(puntatore + i) = i; // Inizializza l'array con il valore di i
}

printf("\n%d\n", puntatore[0]);
printf("\n%d\n", puntatore[1]);
printf("\n%d\n", puntatore[2]);

system("PAUSE");
return 0;
}

/* La funzione get_mem non riceve alcun parametro in ingresso e restituisce un
puntatore al primo valore di tipo float dell'array di 100 elementi allocato
dinamicamente */

int *get_mem(void){

int *p; // Puntatore al primo elemento di tipo float dell'array

/* Alloca memoria per un array di 100 elementi di tipo float */
p = calloc(100, sizeof(int));

if(!p){ // Se calloc restituisce un puntatore NULL
printf("Errore di allocazione della memoria\n");
exit(1);
}
return p;
}
D4rkAng3l č offline   Rispondi citando il messaggio o parte di esso