小白提问:C++提示interrupted by signal 11: sigsegv
零基础转行的小白...连写了两个程序都出现这个问题,搜了一下发现应该是segmentation fault但还是找不出问题所在。其中一题function代码如下:
#include <iostream>
using namespace std;
const int N = 6;
int* findMissing(int arr[], int n, int& resArrSize);
void printArray(int* arr, int arrSize);
int main() {
int arr[N] = {3, 1, 3, 0, 6, 4};
int resArrSize;
int* missingArr = NULL;
missingArr = findMissing(arr, N, resArrSize);
cout << "The logical size of the new array is " << resArrSize << endl;
printArray(missingArr, resArrSize);
delete []missingArr;
missingArr = NULL;
return 0;
}
int* findMissing(int arr[], int n, int& resArrSize) {
int i, j;
int missingArrSize;
int* range = new int [n + 1];
for (i = 0; i < (n + 1); i++) {
range [i] = i;
}
missingArrSize = n + 1;
for (i = 0; i < (n + 1); i++){
if (range [arr[i]] != -1) {
range [arr[i]] = -1;
missingArrSize--;
}
}
j = 0;
int* missingArr = new int[missingArrSize];
for (i = 0; i < (n + 1); i++) {
if (range [i] != -1){
missingArr [j] = range[i];
j++;
}
}
delete []range;
range = NULL;
resArrSize = missingArrSize;
return missingArr;
}
void printArray(int* arr, int arrSize){
int i;
for (i = 0; i < arrSize; i++)
cout << arr[i] << " ";
}
万分感谢!!