例如。
fd = ::open ("/test.txt", O_RDONLY, 0);
struct stat buf;
fstat(fd, &buf);
char* addr = (char*)::mmap(NULL, buf.st_size + 10, PROT_READ, MAP_PRIVATE | MAP_POPULATE, fd, 0);
Run Code Online (Sandbox Code Playgroud)
请注意,我在这里映射了+ 10。但它仍然有效吗?
为什么系统不进行任何检查?危险吗?
谢谢
我知道语法得到编译错误.
std::shared_ptr<int> p = new int(5);
31 41 E:\temprory (delete it if u like)\1208.cpp [Error] conversion from 'int*' to non-scalar type 'std::shared_ptr<int>' requested
Run Code Online (Sandbox Code Playgroud)
但没关系
std::shared_ptr<int> p(new int(5));
Run Code Online (Sandbox Code Playgroud)
同样的unique_ptr;
但我不知道为什么禁止它.
class parent {
virtual ~parent();
private:
int father_private;
int common;
}
~parent() {
common = 1;
}
class child: public parent {
~child();
private:
int common;
}
~child() {
common = 2;
}
Run Code Online (Sandbox Code Playgroud)
根据上述逻辑,预计会执行以下步骤:
在第2步中,"这是常见的=孩子的共同点"吗?
我发现地址不一样所以它可能意味着编译器不会取名,而是在类中使用offeset.因此,步骤2的分配可能会将1写入未知地址并导致意外崩溃,我是对的吗?
我发现Andorid本机流有一些类,其构造函数或析构函数可以访问其私有数据成员.它使得继承性成为上述问题的极其困难.你是如何解决这个问题的?