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

Rispondi quotando