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");
}