我有一个具有私有 unsigned char * 到数据缓冲区的类。数据缓冲区可以是可变长度,所以我使用 malloc() 和 free() 来分配我需要保存数据的内存量。
我的问题是我有另一个类需要访问这些数据。我目前这样做的方式是创建缓冲区的工作副本并将其传递给另一个类。也就是说,我有一个函数 get_data(unsigned char * copy, int size) 将 size 字节复制到 copy 指定的缓冲区中。缓冲区很小(约 50 字节),但我必须在我的程序过程中执行此操作。因此,我正在寻找一种可以使这更加简化的方法。
有没有办法可以将数据缓冲区指针传递给任何其他类?他们能覆盖缓冲区中的数据吗?我知道我可以发回数据缓冲区指针的 const 副本,但是调用者可以调用 const_cast 并随意修改它。也就是说,他们可以调用 const_cast ,然后调用 buf_ptr[2] = 0xFF;
在此先感谢您的帮助。我希望有一种方法可以让我使用指针,而不需要调用者在他们做一些讨厌的事情时破坏数据。