【发布时间】:2020-07-04 18:54:30
【问题描述】:
我正在尝试在嵌入式应用程序中使用 c++。我遇到了一个理论问题
鉴于我没有动态分配,我不使用“新”运算符。问题是关于为对象和析构函数调用构造函数。
我想把我的对象放在内存中的 x 地址。我这样声明:
Foo *myClass = (Foo *) 0x1; //for example
//I guess i need to call constructor manually ?
myClass->myClass();
那么调用构造函数然后手动调用它的解决方案是什么。我应该自己做一个新的操作员吗?例如
void * operator new(size_t size, uint32_t address)
{
return (void *)(address);
}
编译器使用 arm-none-eabi-g++,目标 armv7-m
【问题讨论】:
-
您想使用新的展示位置:
Foo *myClass = new (address) Foo;:en.cppreference.com/w/cpp/language/new