He estado tratando de buscar una razón por la cual el siguiente código está fallando, y no pude encontrar uno. Entonces, disculpen mi ignorancia y háganme saber lo que está pasando aquí.Char * p, y scanf
#include<stdio.h>
int main(void){
char* p="Hi, this is not going to work";
scanf("%s",p);
return 0;
}
Por lo que he entendido, he creado un puntero p a un área contigua en la memoria del tamaño 29 + 1 (para la \ 0). ¿Por qué no puedo usar scanf para cambiar el contenido de eso?
P.S Corrígeme si dije algo mal sobre char *.
Si ese es el caso, ¿cómo leo una cadena de longitud desconocida? – Fingolfin
@Adel, hizo una pequeña Edición, mira la última línea – Muggen
¡Qué bueno, gracias! Pero, ¿qué hacer si no puedo predecir la longitud de la cadena que se va a escanear? – Fingolfin