class Sesion
{
private:
int wymiar = 2;
int **tablica = new int *[wymiar];
int licznik = 0;
void save(int x, int y)
{
for (int i = 0; i < wymiar; i++)
tablica[i] = new int[wymiar];
tablica[0][licznik] = x;
tablica[1][licznik] = y;
licznik++;
}
void open()
{
for (int i = 0; i < licznik; i++)
{
cout << tablica[0][i] << endl;
}
}
}
我不知道如何读取 open()
中的值,因为我在那里得到了奇怪的数字。
在 save()
中,一切都很完美。我必须将 x 和 y 保存在无限数组中,然后从中读取这些值。
我知道我可以使用 Vector,但我需要使用动态数组
最佳答案
你让你的生活变得不必要地复杂化。以安全的方式自行管理内存分配/释放将成为 PITA。更不用说您的代码也受到内存泄漏的影响。
我还注意到您总是保存一对int
。您应该使用std::pair
或自定义结构/类,与 std::vector
结合使用相反。
这是一个例子:
class Sesion {
private:
std::vector<std::pair<int, int>> tablica;
public:
void save(int x, int y) {
tablica.emplace_back(x, y);
}
void open() {
for (auto p : tablica)
std::cout << std::get<0>(p) << ',' << std::get<1>(p) << '\n';
}
};
关于c++ - 动态数组-读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745112/