无法将数据复制到数组中

问题描述 投票:-1回答:2

[我正在制作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;
c++ arrays visual-studio new-operator
2个回答
0
投票

我尝试过:


-1
投票

我认为index[i] = num;将值保存为reference,这就是为什么您看到整个index数组只有一个数字的原因。我已经看到一些linter标记这种错误,他们大多说创建一个新变量,该变量在上下文中将是唯一的,因此引用将是唯一的,而不是相同的内存地址。

© www.soinside.com 2019 - 2024. All rights reserved.