| 
	
	
		
			
			 
				
				[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; 
}
		 
		
	
		
		
		
		
		
	
	 |