В динамике(динамической библиотеке), есть глобальный указатель на структуру. И есть функция которая инициализирует этот указатель.
| Код | struct any { int count; };
...
struct any* pany;
...
void myinit() { pany = (struct any*)malloc(sizeof(struct any)); pany->count = 0; printf("address = 0x%08x, count = %d\n", (unsigned)pany, pany->count); }
|
здесь все правильно. Но когда из программы делаю:
| Код | struct any* p = (struct any*)dlsym(dl, "pany"); printf("address = 0x%08x, count = %d\n", (unsigned)p, p->count);
|
получаю другой адрес. Почему? |