C++ C++;将整数存储为整数数组时出现分段错误
我有一个分段错误,我不知道为什么: 我有以下代码: 整小时C++ C++;将整数存储为整数数组时出现分段错误,c++,arrays,segmentation-fault,C++,Arrays,Segmentation Fault,我有一个分段错误,我不知道为什么: 我有以下代码: 整小时 const int MAXCHIFFRES=1000; typedef int tabEnt[MAXCHIFFRES]; 整个结构 { 布尔否定; 塔本奇夫雷斯; }; EntierLong加法(EntierLong n1,EntierLong n2) { 内倾余弦,索姆,我; n3=转换器(0); 如果(n1.Negatif!=n2.Negatif) { cout如果您有内存分配问题,您可以通过键入替换整个 struct Entie
const int MAXCHIFFRES=1000;
typedef int tabEnt[MAXCHIFFRES];
整个结构
{
布尔否定;
塔本奇夫雷斯;
};
EntierLong加法(EntierLong n1,EntierLong n2)
{
内倾余弦,索姆,我;
n3=转换器(0);
如果(n1.Negatif!=n2.Negatif)
{
cout如果您有内存分配问题,您可以通过键入替换整个
struct EntierLong
{
bool Negatif;
std::vector<int> Chiffres;
EntierLong()
{
Chiffres.resize(MAXCHIFFRES,0);
}
};
struct EntierLong
{
布尔否定;
std::病媒Chiffres;
整个长度()
{
调整大小(MAXCHIFFRES,0);
}
};
构造函数将在堆上分配Chiffres
数组。如果存在内存分配问题,可以通过键入替换整个数组
struct EntierLong
{
bool Negatif;
std::vector<int> Chiffres;
EntierLong()
{
Chiffres.resize(MAXCHIFFRES,0);
}
};
struct EntierLong
{
布尔否定;
std::病媒Chiffres;
整个长度()
{
调整大小(MAXCHIFFRES,0);
}
};
构造函数将在堆中分配<代码> Chiffres < /C>数组。未定义。您可能在堆栈上分配太多内存。这是问题ZaBig,另一个函数称为数组数组。我通过使用<代码>静态< /Cult>定义解决了它。您应该明确地看C++标准容器。(见我的答案)分配。没有容器的C++不是真正的“好老C”的跳跃。。只要不需要太多内存,就可以在堆上进行分配。您的解决方案存在的问题是,结构是在分配过程中提供给我的,我不允许更改它。我肯定会在校外按您的方式进行分配。但是没有定义n3。您可能在堆栈上分配了太多内存。这就是@Z的问题AiBrg,另一个函数,叫做数组数组。我用<代码>静态< /Calp>定义解决了它。你应该明确地看C++标准容器(见我的答案)。没有容器的C++不是真正的“好老C”的跳跃。。只要你不需要太多内存,在堆上分配是可以的。我对你的解决方案的问题是,结构是在分配期间给我的,我不允许更改它。但是,我肯定会在校外按你的方式进行。