[我正在制作3D游戏引擎,并且我在创建自己的文件,以便不一直读取fbx的数据,因为它确实很慢。
我的问题是读取我自己文件的数据。这是给我带来问题的一段代码。
std::vector<uint> nums;
index = new uint[num_index];
uint num = 0;
for (uint i = 0; i < num_index; ++i) {
memcpy(&num, cursor, sizeof(uint));
index[i] = num;
nums.push_back(num);
cursor += sizeof(uint);
}
当我读取自己的文件时,我将数据保存在称为char*
的称为游标的缓冲区中。我的问题是变量索引只是为我节省了一个数字,而向量nums正确地保存了所有内容,因此我知道变量索引有问题,但我不知道为什么会这样。
我也尝试过,但是我仍然有同样的问题,我只是获得了第一个值。
index = new uint[num_index];
bytes = sizeof(uint) * num_index;
memcpy(index, cursor, bytes);
cursor += bytes;
我尝试过:
我认为index[i] = num;
将值保存为reference
,这就是为什么您看到整个index
数组只有一个数字的原因。我已经看到一些linter标记这种错误,他们大多说创建一个新变量,该变量在上下文中将是唯一的,因此引用将是唯一的,而不是相同的内存地址。