使用无符号字符数组有效存储内存
Using unsigned char array to store memory efficiently
我一直在寻找一种有效的存储内存的方法,所以我意识到无符号字符只使用一个字节的内存。考虑到这一点,我制作了一个小程序,可以获得每个变量的字节大小。
int main() {
int myInt = 10;
long long myLongLong = 10;
unsigned char charArray1[] = { 10, 10, 10, 10 };
unsigned char charArray2[] = { 10, 10, 10, 10, 10, 10, 10, 10 };
std::cout << "Using sizeof () we get:" << std::endl;
std::cout << "myInt -> " << sizeof(myInt) << std::endl;
std::cout << "myLongLong -> " << sizeof(myLongLong) << std::endl;
std::cout << "charArray1 -> " << sizeof(charArray1) << std::endl;
std::cout << "charArray2 -> " << sizeof(charArray2) << std::endl;
return 0;
}
输出:
Using sizeof () we get:
myInt -> 4
myLongLong -> 8
charArray1 -> 4
charArray2 -> 8
说我可以将字节存储在无符号字符数组中是正确的吗?如果正确的话,我如何从无符号字符中获得一些矩阵元素并将它们分配给变量?
示例:如果一个整数在内存中占据4个字节,我可以从无符号char数组中获得4个元素,并将其分配给一个整数。
说我可以在无符号char数组中存储字节是正确的吗?
是。
如果一个整数占用内存中的4个字节,我可以从无符号char数组中获得4个元素,并将其分配给一个整数。
如果且仅当数组包含与系统本机使用的格式完全相同的整数字节时,则可以执行以下操作:
static_assert(sizeof myInt == sizeof charArray1);
std::memcpy(&myInt, charArray1, sizeof myInt);
如果格式不相同,那么只要知道字节代表什么,仍然可以计算值。
相关文章:
- 使用无符号字符数组有效存储内存
- 在函数内创建的对象的范围 - 如果在函数外部存储和访问引用,它们是否有效?
- 有效地将大数存储为 2 的幂用于路径问题
- 存储变量的更有效方法是什么?
- 在C++事务之间存储大量字符数据的有效方法
- 张量(多维数组)是树前瞻数据的有效存储类型吗?
- 如何在整数数组中有效地存储大量数字?C++
- 如何有效地读取和存储 1GB 文本文件中的数据
- 如何使用 stl 容器有效地存储对象?(即根据其字段的值进行搜索)
- 何时有效使用存储桶排序以及需要多少存储桶
- 有效地将列/行插入到就地存储在行/列主向量的矩阵中
- 存储大量会话的最有效数据结构是什么?
- (有效地)动态存储多项式
- 在C/C++中存储字符串、数组和指针,哪种方法更有效
- 将大量数据存储在数据库中的最有效方法
- 有效地将文件中的模式存储在向量中
- 尝试在C++中有效地存储重复的子字符串
- 可以存储参数化类的所有有效实例吗?
- 如何有效地将游戏对象存储在四叉树中
- 如何有效地存储非常大的图形空间,同时具有快速索引