Ciao, ho scritto un programmino in cui leggo così una stringa dinamica:

codice:
char *leggiNome(char c) {
	int i = 1;
	int l;
	char *temp;
	char *nome = malloc(2*sizeof(char));
	while(c >= 'a' && c <= 'z') {
		nome[i - 1] = c;
		nome = (char *)realloc(nome, ++i * sizeof(char));
		c = getchar();
	}
	
	nome[i - 1] = '\0'; /* Fine nome */
	return nome;
}
nel resto del programma la stringa nome è sempre associata a puntatore a carattere, e mai a stringhe preallocate come ad esempio stringa[15]. Il problema è che se le stringhe sono più lunghe di 7 caratteri il programma crasha, se le metto tutte al max di 7 lettere funziona tutto perfettamente. Sapete dirmi perchè?

mi pare di ricordare che certe stringhe siano in effetti memorizzate come abcdefgh\x1