当前位置:  开发笔记 > 编程语言 > 正文

分段错误错误11 C++

如何解决《分段错误错误11C++》经验,为你挑选了1个好方法。

所以我在代码的开头出现了分段错误错误.我尝试在不同的点运行一些测试,错误似乎是我为数组分配内存.我刚刚开始学习堆和堆栈内存,所以我不确定我是否在那里做错了.任何帮助,将不胜感激.

#include 
using namespace std;

//Function Prototypes
void sort(int A[], int n);
int findMin(int A[], int n, int j);
int swap(int& a, int& b);
double median(int A[], int n);
void output1(int median);
void output2(double median);

int main()
{
  int size;
  int array[size]; //Segmentaion fault here
  int i = 0;

  cout << "Enter the size of the list (< 1 to quit): ";
  cin >> size;

  while(size >= 1)
    {
      double element;

      cout << "Enter element " << i+1 << ": ";
      cin >> element;

      array[i] = element;

      i++;

      while(i < size)
    {
      cout << "Enter element " << i+1 << ": ";
      cin >> element;

      array[i] = element;
      i++;
    }

      sort(array, size);
      median(array, size);

       cout << "Enter the size of the list (< 1 to quit): ";
       cin >> size;
    } 
  delete [] array;
  return 0;

}


void sort(int A[], int n)
{
  int min;
  for(int i = 0; i < n; i++)
    {
      min = findMin(A,n,i);
      //min = findMinIndex(p, size, i);

      //if(min )
        swap(A[i],A[min]);
      //swap(p[i],p[min]);
    }
}

int findMin(int A[], int n, int j)
{
  int minIndex = j;
  for(int i = j+1; i < n; i++)
    if(A[i]

Joe C.. 9

因为你没有初始化size,所以变量中的值可以是任何东西.如果它碰巧过大,比如106,840,406,那么你将无法获得那么大int[]的尺寸.

所以基本上,将你的size变量初始化为合理的东西.



1> Joe C..:

因为你没有初始化size,所以变量中的值可以是任何东西.如果它碰巧过大,比如106,840,406,那么你将无法获得那么大int[]的尺寸.

所以基本上,将你的size变量初始化为合理的东西.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有