Ciao ragazzi, sto scrivendo un codice, ma nel momento in cui digito, semplicemente digito, la freccetta del puntatore il programma s'impalla. Quello evidenziato in rosso è il carattere che digitandolo causa il problema. Soluzioni?

#include <stdio.h>
#include <stdlib.h>

struct elemento
{
int dato;
struct elemento* next;
};

typedef struct elemento Elemento;
typedef Elemento* Stack;

void push(Stack* stack, int dato);
Elemento* pop(Stack* stack);
void visualizza(Stack stack);

int main(int argc,char *argv[])
{
Stack pila = NULL;
int x,i;

for(i=0; i < 5; i++)
{
printf("Valore: ");
scanf("%d",&x);
push(&pila,x);
}

system("PAUSE");
return 0;
}

void push(Stack* stack, int dato)
{
Elemento* elemento = (Elemento*) malloc(sizeof(Elemento));
elemento->dato = dato;
elemento->next = *stack;
*stack = elemento;
}

Elemento* pop(Stack* stack)
{
Elemento* e = (*stack);
if(e != NULL)
(*stack) = e->next;
return e;
}


void visualizza(Stack stack)
{
printf("--- Contenuto ---");

while(stack != NULL)
{
printf("%d\n",stack->);
}

printf("--- Fine --------");
}