Я получаю сообщение об ошибке повреждения кучи при вызове моего удаления в main.Но я ясно вижу, что мои значения в моем динамически размещенном массиве отображаются.Я проверил несколько других статей, но я запутался в своем конкретном случае относительно того, что я сделал неправильно.Предполагается, что динамически распределяемый массив содержит элементы массива исходного массива, которые больше или равны 10. Именно поэтому 11 и 13 отображаются при выводе элементов массива в новый динамически распределяемый массив.
#include <iostream>
#include <string>
#include <new>
#include <cmath>
#include <cstdlib>
using namespace std;
bool interesting(unsigned n);
unsigned * cull(unsigned & intEls, const unsigned ar[], unsigned els);
int main(){
unsigned ar1[5] = { 3,5,7,11,13 };
unsigned size;
unsigned * result = cull(size,ar1,5);
for (unsigned i = 0; i < size; i++) {
cout << result[i];
}
delete[] result;
}
bool interesting(unsigned n){
if (n >= 10)
return true;
else {
return false;
}
}
unsigned * cull(unsigned & intEls, const unsigned ar[], unsigned els){
intEls = 0;
unsigned * array = new unsigned[intEls];
for (unsigned i = 0; i < els; i++) {
if (interesting(ar[i])) {
array[intEls++] = ar[i];
}
}
return array;
}