Ciao a tutti!
Devo scrivere un programma in C che mi consenta di determinare il minimo di due numeri interi dati in ingresso, dichiarando esclusivamente variabili di tipo puntatore a intero.
CODICE:
#include <stdio.h>
int main()
{
int *a, *b;
printf("a: "); scanf("%p", &a);
printf("b: "); scanf("%p", &b);
//Stampa il contenuto di a
printf("a vale: %d", *a);
//Stampa il contenuto di b
printf("b vale: %d", *b);
//Stampa indirizzo di memoria di a
printf("Indirizzo di a: %p", a);
//Stampa indirizzo di memoria di b
printf("Indirizzo di b: %p", b);
if(*a > *b)
printf("Tra %d e %d il minimo è %d", *a, *b, *b);
else
printf("Tra %d e %d il minimo è %d", *a, *b, *a);
return 0;
}
Utilizzo una derivata di Ubuntu come O.S.
La compilazione va a buon fine, ma quando lo eseguo e inserisco i due numeri il compilatore mi dice:
Errore di segmentazione (core dump creato)
Dov'è che ho sbagliato?