Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “错误”;中止陷阱:6“;对多于15个元素进行排序时出现_C++ - Fatal编程技术网

C++ “错误”;中止陷阱:6“;对多于15个元素进行排序时出现

C++ “错误”;中止陷阱:6“;对多于15个元素进行排序时出现,c++,C++,当我对数字[]中超过15个元素(k>15)进行排序时,会出现一个错误中止陷阱:6。我正在使用MacOSX和代码块12.11 代码: #包括 #包括 #包括 #包括 使用名称空间std; void getdata(整数[],整数和整数); 无效排序(整数[],整数和整数); int main() { 整数[10]; int k; getdata(数字,k); 排序(数字,k); 对于(int i=0;i第12行: int numbers[10]; 您只为10个整数保留了空间。请改用随输入

当我对数字[]中超过15个元素(k>15)进行排序时,会出现一个错误中止陷阱:6。我正在使用MacOSX和代码块12.11

代码:

#包括
#包括
#包括
#包括
使用名称空间std;
void getdata(整数[],整数和整数);
无效排序(整数[],整数和整数);
int main()
{
整数[10];
int k;
getdata(数字,k);
排序(数字,k);
对于(int i=0;i第12行:

    int numbers[10];
您只为10个整数保留了空间。请改用随输入而增长的
std::vector
。get\u数据和排序函数都不需要k参数。该向量保留大小

我得到一个错误中止陷阱:6当我排序超过15 数字[]中的元素(k>15)

这是因为您的
数字[]
仅包含10个元素:

试图访问一个不存在的数组元素是未定义的行为。这意味着程序可以做任何事情,包括不时以各种方式崩溃,包括您体验到的崩溃,或者如果它碰巧感觉到是这样的话,甚至可以生成预期的输出

你必须知道你想要什么:

  • 一个
    int
    s的集合,其大小在编译时是固定的,不能增长或收缩?如果是这样,请使用并确保用户最多可以输入10个数字(例如,如果输入的数字大于10,则退出程序并显示错误消息)

  • 程序运行时可以增长的
    int
    s的集合?如果是这样,请在输入元素时使用和
    push_back
    元素


嗯,你的
数字
数组只有10个元素长。因此它应该已经有11个元素了。事实上,它不是这样纯粹是运气。
    int numbers[10];
int numbers[10];