所以我在代码的开头出现了分段错误错误.我尝试在不同的点运行一些测试,错误似乎是我为数组分配内存.我刚刚开始学习堆和堆栈内存,所以我不确定我是否在那里做错了.任何帮助,将不胜感激.
#includeusing 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
变量初始化为合理的东西.