从动态内存变为静态内存

问题描述 投票:0回答:1

我正在尝试将动态内存对象更改为静态内存使用,以希望以某种方式释放内存。

原代码(动态):

类.h:

Class() {
  auto output = std::unique_ptr<uint8_t[]>(new uint8_t[size]);

  Call(output.get());
  memcpy(randomlocation, output.get(), size);
}

Call(Byte *dest) {
  doStuff..
}

我很困惑如何使用非 unique-ptr 执行类似的 .get() 操作。我见过

&*
可能有效,但没有任何运气。

我对静态的尝试:

类.h:

uint8_t *output[64];

Class() {
  Call(reinterpret_cast<Byte*>(&*output));
}

我尝试过其他方法,例如不

&*
和不同的演员阵容,但没有任何运气。它有时可以编译,但似乎无法正常工作。 想看看这部分是否错误,如果没有那么我至少会知道我做对了这部分。

c++ dynamic-memory-allocation static-memory-allocation
1个回答
0
投票

这有效:

void cal(uint8_t* dest) {

}

uint8_t 输出[64]; cal(reinterpret_cast(输出));

© www.soinside.com 2019 - 2024. All rights reserved.