【发布时间】:2021-06-18 07:29:47
【问题描述】:
大家好,我必须为类创建一个程序,该程序应该将浮点值存储在类的一个指针数组中。我查了指针是如何工作的,我想我明白了。或者也许我没有?因为我的代码确实很奇怪。
private:
float * messdaten;
int mdi = 0;
public:
CMesswerte(){
}
void setDaten(float daten[], int size) {
float* temparray;
temparray = new float[mdi];
for(int i=0; i < mdi; i++){
*(temparray + i) = *(messdaten + i);
}
messdaten = new float[size+mdi];
for(int i=0; i < mdi; i++)
*(messdaten + i) = *(temparray + i);
for(int i=mdi; i < mdi+size; i++) {
*(messdaten + i) = daten[i];
}
mdi=mdi+size;
}
所以浮动指针变量messdaten 应该存储所有内容,而整数mdi 是指针“当前大小”的计数器。
方法setDaten 获取一个带有一些浮点数的数组,然后将其存储在messdaten(日期)和数组的大小(大小)中以在运行时创建它。
然后来自messdaten 的所有数据都存储在temparray 中,因此我可以删除messdaten 以使用新的正确大小创建它。之后,一切都再次转移到messdaten。
当我运行代码时,我得到:
这两个数组在两个单独的函数调用中传递:
float Daten_1[5] = { 1.5, 2.3, 5.5, 0.6, 7.5};
float Daten_3[5] = {2.4, 1.5, 5.4, 2.3, 7.5};
这是我得到的输出:
1 - 1.5
2 - 2.3
3 - 5.5
4 - 0.6
5 - 7.5
6 - 0
7 - 3.36312e-44
8 - 0
9 - 1.5
10 - 2.3
但是我得到了错误的输出?我不明白为什么......请帮忙。 (注意我不允许使用向量)
【问题讨论】:
-
是的,因为这应该是关于如何在 c++ 中使用指针的练习。
标签: c++ arrays class pointers methods