Como os literais de string são compilados em
Como os literais de string são compilados em C? De acordo com meu entendimento, no teste1, a string "olá" é inserida no segmento de dados pelo compilador e na segunda linha p é atribuído esse endereço virtual codificado. Isso está correto? e que não há diferença básica entre como o teste1 funciona e como o teste2 funciona.
Alguns códigos:
#include <stdio.h>
test1();
test2();
test3();
main()
{
test1();
test2();
//test3();
}
test1()
{
char *p;
p="hello";
}
test2()
{
char *p="hello";
}
test3()
{
char *p;
strcpy(p,"hello");
}
Qualquer referência do padrão C será muito apreciada, para que eu possa entender isso profundamente do ponto de vista do compilado