如何安全地将静态字符数组传递给另一个类
how to pass a static char array to another class safely
我想知道是否有人可以帮助我了解如何安全地将静态无符号字符数组从一个类传递到另一个类。如果这是微不足道的,我很抱歉,但我想确保我做对了。
例如// First Class
unsigned char data[1024];
TMainClass::TMainClass()
{
data[34] = 1;
data[45] = 65;
...
TOtherClass obj(data);
};
// Second class
static unsigned char obtainedData[1024];
TOtherClass::TOtherClass(unsigned char* _data)
{
obtainedData = _data;
};
您确实应该使用stl或boost容器。但是,如果您有很好的理由不这样做,那么……
你通过的很好,但是赋值是错误的。
obtainedData = _data;
你真的应该复制数据
memcpy(obtainedData, _data, 1024);
std::copy(_data, _data+1024, obtainedData) // Thanks @Grizzly
或者重新定义obtainedData变量
static unsigned char* obtainedData;
指出:
一定要考虑要传递和复制到的数组的大小。它们能保证尺寸一样吗?
你说的"安全"或"安全"是什么意思?
你的类型是错误的(你没有像那样把一个数组赋值给另一个数组)。
这是c++所以你应该使用std::string或者std::vector或者如果你需要一个固定的缓冲区std::array
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符