小编Mu *_*iao的帖子

0x08048000用于32位机器之前的内存是多少?

在Linux中,我了解到每个进程都在32位机器中存储从0x08048000开始的数据(在64位机器中存储0x00400000).

但我不知道从那里开始的原因.在0x08048000用于之前的内存是多少?

更新:有些人认为它是为内核映射的.但据我所知,Linux内核使用在用户堆栈之后启动的高端内存.

linux memory operating-system process

19
推荐指数
2
解决办法
5065
查看次数

type_info对象存储在哪里?

我从" Inside the C++ Object Model "中读到,type_info对象通常存储在虚拟表的第一个插槽中.但是,我迭代了虚拟表中的成员:

class Base {
public:
    virtual void f() { cout << "Base::f" << endl; }
    virtual void g() { cout << "Base::g" << endl; }
    virtual void h() { cout << "Base::h" << endl; }
};

typedef void(*Fun)(void);

Base b;

(Fun)*((int*)*(int*)(&b)+0); // Base::f()
(Fun)*((int*)*(int*)(&b)+1); // Base::g()
(Fun)*((int*)*(int*)(&b)+2); // Base::h()
Run Code Online (Sandbox Code Playgroud)

从最后三行看,我根本找不到type_info.

c++

3
推荐指数
1
解决办法
1028
查看次数

标签 统计

c++ ×1

linux ×1

memory ×1

operating-system ×1

process ×1