首页 > 解决方案 > 如何使指针成员 const'able

问题描述

好的,所以这可能是一个简单的问题,但我找不到答案。假设我有以下结构:

struct Bytes {
    uint8_t* buffer;
    uint32_t length;
};

我尝试像这样初始化它:

const uint8_t buffer[] = "Hello";
const uint32_t length = sizeof(buffer);
const Bytes bytes = { buffer, length };

然后它不会编译,因为我传递的缓冲区是cosnt uint8_t*,并且uint8_t*即使整个Bytes结构是 const,结构也需要。我可以将buffer成员设为 aconst uint8_t*但这会破坏一些我实际上希望字节可变的其他代码。所以我想我的问题是:

有没有办法让指针成员保持与结构相同的可变性?

标签: c++c

解决方案


推荐阅读