-La scanf richiede l'indirizzo della variabile
-Quando allochi una arry di interi devi moltiplicare la dim dell'array per la dimensione in byte di un intero
codice:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

int main()
{
    int i, yn, elem, dimint, dimarr, *array;;
    printf("Inserire il numero di elementi interi (intero):\n");
    scanf("%i", &elem);
    dimint = sizeof(int);
    dimarr = elem * dimint;
    array = (int *)malloc(dimarr* sizeof(int));
    if(array == NULL)
    {
        printf("Memoria insufficente per allocare %i elementi", elem);
        system("PAUSE");
    }
    printf("Vuoi inserire il loro valore uno alla volta (digita 1)\nOppure lasciare assegnare il valore al programma? (digita 2)\n");
    scanf("%i", &yn);
    if(yn == 1)
    {
        for(i = 0; i < elem; i++)
        {
              printf("Valore array[%i] (intero): ", i);
              scanf("%i", &array[i]);
              printf("\n");
        }
    }
    else
    {
        for(i = 0; i < elem; i++)
        {
              array[i] = i;
        }
    }
    for(i = 0; i < elem; i++)
    {
        printf("array[%i] = %i\n", i, array[i]);
    }
    printf("Allocati per l'array personalizzato: %i byte\n", dimarr);
    system("PAUSE");
    return 0;
}