向对象数组 c++ 添加值
Adding a value to a objects array c++
我创建了一个节点对象,该对象填充在 63 x 63 的数组中。在第一个值之后,它应该只访问附加到对象的数组并在该数组中放入一个值。
对象数组定义为:
node ** arr[63][63];
我的函数是这样的:
void addValue(int x, int y, float value)
{
node a = ** arr[x][y];
a.valueList[a.size] = value;
a.size = a.size + 1;
}
这个想法是,如果数组中已经有一个节点(当调用函数时,可以假设已经有一个节点(,将值添加到该位置已经存在的节点上的"valueList"。
以下是它在 Main 中的称呼方式:
if(!isValid(arr[xCount][yCount]))
{
node a(0, false, xCount, yCount);
addToArray(&a);
myFile.read((char *) &dataIn, 4);
yCount++;
}
else
{
myFile.read((char *) &dataIn, 4);
addValue(xCount, yCount, dataIn);
yCount++;
}
addValue 函数正在使程序崩溃,并且未正确将值添加到附加到对象的数组中。我猜这可能与我访问数组"arr[][]"的方式有关。
整个**
arr
定义的一部分,以及a
的赋值 - 你在问题的文本中根本没有提到这些。这让我怀疑你实际上并不是故意把它们放在那里。听起来你想要一个node
的 2D 数组,而不是指向node
s 的指针的 2D 数组。事实上,如果您错过了这一点,并且没有将节点和指针分配给节点,以便指针指向要指向的节点,那么您将出现分段错误。
顺便说一句,还要注意a
是数组元素的副本,其更改不会传播到arr
。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 将图像添加到资源文件夹UWP C++
- 当我尝试添加 2 个大字符串时,我无法弄清楚出了什么问题