C++ 运行时检查失败#2-围绕变量';e';他被腐蚀了。发生 #包括 #包括 使用名称空间std; 类欧拉{ 私人: int-korifes=0; int-akmes=0; int*pinakas[]; 公众: void print(){cout

C++ 运行时检查失败#2-围绕变量';e';他被腐蚀了。发生 #包括 #包括 使用名称空间std; 类欧拉{ 私人: int-korifes=0; int-akmes=0; int*pinakas[]; 公众: void print(){cout,c++,class,visual-studio-2010,C++,Class,Visual Studio 2010,您的代码中存在大量错误,所有错误都与pinakas成员变量的性质有关。目前,您将其声明为指针数组(指向int),而且,您对“flexible”数组使用了非标准语法(空的[]) 我通常不只是粘贴“固定”代码作为答案,但在这种情况下,该代码(在我进行更改的地方添加了\\\\注释)可能是帮助您的最简洁的方式 尽管这里的许多人无疑会指出,最好避免使用“原始”指针和new和delete运算符,而是使用容器 #包括 #包括 //使用名称空间std;///这被许多程序员认为是“不好的做法” 使用std::co

您的代码中存在大量错误,所有错误都与
pinakas
成员变量的性质有关。目前,您将其声明为指针数组(指向
int
),而且,您对“flexible”数组使用了非标准语法(空的
[]

我通常不只是粘贴“固定”代码作为答案,但在这种情况下,该代码(在我进行更改的地方添加了
\\\\
注释)可能是帮助您的最简洁的方式

尽管这里的许多人无疑会指出,最好避免使用“原始”指针和
new
delete
运算符,而是使用容器

#包括
#包括
//使用名称空间std;///这被许多程序员认为是“不好的做法”
使用std::cout;///只需使用所需STL的方面!
类欧拉{
私人:
int-korifes=0;
int-akmes=0;
int*pinakas;///这将指向整数的“数组”
公众:
作废打印(){

你的代码中是否有一些关于你想要的pinakas是什么以及如何使用它的混淆。你能澄清一下吗:它应该是一个
int
数组,还是一个指针数组?有了这个澄清,我就可以(也许)了识别并更正代码中的其他错误。它是一个int和size“korifes”数组…数字89只是一个测试数字,而数字“akmes”在代码的这一点上是i引用的
pinakas
没有大小,因此没有分配给它的空间,写入它是未定义的行为(事实上,在结构中使用未指定大小的数组是无效的c++)在“delete[]pinakas”处是否需要[]?因为pinakas不是array@Angel简单的规则是,如果将
new
运算符与
[]
一起使用(如下所示),则相应的
delete
运算符也必须具有
[]
(如下所示)。
    #include<iostream> 
    #include <list> 
    using namespace std;

class Euler {
private:
    int korifes = 0;
    int akmes = 0;
    int* pinakas[];
public:
    void print() { cout << *pinakas[0]; return; }

    Euler(int korifess, int akmess);
    ~Euler() { delete[] *pinakas; }

    void addAkmes(int kor1, int kor2);
};

Euler::Euler(int korifess, int akmess) : akmes(akmess), korifes(korifess) {
    *pinakas = new int(korifes);
    *pinakas[0] = 89;
}

int main() {
    Euler e(2, 1);
    e.print();
}