Questo codice sembra funzionare.Ma ho dovuto modificare la seguente riga:
codice:
array1=malloc(dim*sizeof(int));
in:
codice:
array1=(int*)malloc(dim*sizeof(int));
altrimenti mi da come errore:
invalid conversion from `void*' to `int*'.Mi sono fatto una mia idea personale,ma mi farebbe piacere confrontarmi con un esperto:


il codice:
codice:
array1=malloc(dim*sizeof(int));
mi da errore perchè è valido se si utilizza il linguaggio c e si utilizza un compilatore che lo supporta,io invece uso devc++ quindi devo aggiungere
(int *)....sto dicendo una ca***ata?

codice:
#include<stdio.h>
#include<assert.h>
#include<string.h>
#include<stdlib.h>
#define DIM 100
#include<malloc.h>

int main()
{
    int *array1;
    int dim,i;
    
    printf("Inserisci la dimensione:");
    scanf("%d",&dim);
    
    array1=(int*)malloc(dim*sizeof(int));
 
    
    if(array1!=NULL)
    {
      
      for(i=0;i<dim;i++)
      {
          printf("Inserisci elemento:");
          scanf("%d",&array1[i]);
      }
      
          printf("Elementi allocati\n\n");
          printf("posizione\tindirizzo di memoria \tvalore\n");
          
          for(i=0;i<dim;i++)
          printf("%d\t\t%d\t\t\t%d\n",i,&array1[i],array1[i]);
          
    }
    
 
    else
    
    printf("Errore");
                  
     
    free(array1);
    system("pause");
}