Scusate per la domanda che potrebbe sembrare banale...
Io non capisco perchè questo codice funziona a metà!

__________________________________________________ ___________
#include <stdio.h>
#include <malloc.h>

main()
{
char* array;
char c;

array=(char*)malloc(sizeof(char)*10);
printf("Inserisci elementi dell' array\n");

scanf("%s", array);

printf("%s\n", array);

printf("Inserisci un carattere\n");
scanf("%c", & c);
printf("Carattere = ");
printf("%c\n", c);

free(array);
}
__________________________________________________ ___________

Funziona a metà nel senso che l'array viene allocato, lo riempio e stampoil contenuto correttamente, invece questa parte:

printf("Inserisci un carattere\n");
scanf("%c", & c);
printf("Carattere = ");
printf("%c\n", c);

non funziona!
Non funziona nel senso che non si ferma a chiedere l'immissione del carattere e di conseguenza non lo stampa... Invece se nel sorgente scrivo solo questo ed elimino la parte di codice riguardante l'array e ricompilo tutto funziona e anche questa parte funziona (a dimostrare che non ho fatto errori di sintassi!)...

Qual'è il problema?
Grazie a tutti