Ti da errore perchè quando utilizzi i puntatori devi allocare lo spazio di memoria.
Quando dichiari un puntatore (*p per intenderci) dichiare solo un indirizzo, lo spazio lo devi allocare:
la funzione malloc() è quella che ti interessa
#include <stdio.h>
#include <stdlib.h> // questa e' la libreria di malloc
int main(void)
{
char *str;
int n; // numero di caratteri da allocare
str=(char *)malloc(n*sizeof(char));
if (str==NULL)
{
printf("\nErrore allocazione!\n");
exit(1);
}
printf("\nInserisci una stringa: ");
scanf("%s",str);
printf("\nHai inserito la stringa: %s\n");
return 0;
}
P.S.
Ho scritto scanf perchè era stato chiesto come utilizzare scanf, poi è normale che per le stringhe conviene usare fgtes e non gets (che non ècompatibile con tutte le piattaforme).
Ciao!!!!:quote:

Rispondi quotando