Cuando compilo y ejecuto este código de forma consecutiva un par de veces, informa la dirección de cc como 0x0012FF5C. Pero cuando trato de imprimir la cadena en esa dirección usando la segunda llamada a printf in foo, imprime basura en lugar de imprimir "Hola"? ¿¿Porque?? Qué sucede si directamente explico la dirección como argumento cuando sé que la dirección se encuentra dentro del espacio de direcciones de la aplicación (al menos hasta que no reinicie mi PC, o inicie alguna otra aplicación que requiera mucho espacio y que cause mi aplicación debe ser eliminada) ??¿Por qué no podemos usar el direccionamiento directo en el código c o C++?
void foo(char *cc[])
{
printf("%x\n",cc);
printf("%s\n",(char *)(0x0012FF5C));
}
int main()
{
char *c[] = {"Hello","World"};
foo(c);
}
¿Por qué quieres hacer esto ya que solo estás cubriendo tus apuestas de que se usará la misma dirección? Haz un pequeño cambio y rompes el código.Parece algo bastante tonto de hacer o incluso contemplar. –
No elimine las preguntas que se responden. Alguien se esforzó por responder tu pregunta. –