У меня две программы,
Программа A такая,
int main(int argc, char** argv) {
char* s = "hello";
printf(s);
return (EXIT_SUCCESS);
}
Базовый адрес s равен 0x80484e0 "привет", теперь у меня есть программа B, как показано ниже
int main(int argc, char** argv) {
void* p = (void*)0x80484e0;
char* c = (char*)p;
while(*c)
{
printf("%c",*c);
c++;
}
return (EXIT_SUCCESS);
}
В программе B «p» указывает на тот же базовый адрес, что и «s» в программе B, но содержимое не совпадает.
Даже если «p» и «s» имеют один и тот же базовый адрес, их содержимое не одинаково, потому что они работают как разные программы в разных адресных пространствах?