Am mirar el siguiente programa y no está seguro de cómo se asigna la memoria y por qué:montón vs segmento de datos vs asignación de pila
void function() {
char text1[] = "SomeText";
char* text2 = "Some Text";
char *text = (char*) malloc(strlen("Some Text") + 1);
}
En el código anterior, el último es, obviamente, en el montón. Sin embargo, como entiendo, text2 está en el segmento de datos del programa y text1 puede estar en la pila. ¿O es errónea mi suposición? ¿Cuál es la suposición correcta aquí? ¿Es este compilador dependiente?
Gracias
1: pregunta muy intersting – Heisenbug
¿entiende la diferencia entre el puntero y los datos que señala? – n0rd
Sí n0rd, sin embargo, este me impactó, ya que parece que este tiene múltiples opciones posibles. – Kiran