@Puj

Ошибка munmap_chunk(): invalid pointer Process finished with exit code -6. Что делать?

Я напимал код, который копирует ззначения одного динамического массива, в другой. Код скомпилировался правильно, но выдал какую-то ошибку. Что делать?
#include <iostream>
using namespace std;

int FillArray(int* const arr, const int  size){
  for (int i = 0; i < size; i++)
  {
    arr [i] = rand()%10;
  }
}    

int ShowArray(const int* const arr, const int size){
  for(int i = 0; i < size; i++)
  {
    cout<< arr[i] << "\t";
  }
  cout << endl;
}

int main()
{
    int size = 10;
    int *firstarray = new int(size);
    int *secondarray = new int(size);
    
    FillArray(firstarray, size);
    FillArray(secondarray, size);
    cout<< "firstarray: \t";
    ShowArray(firstarray, size);
    cout<< "secondarray:\t";
    ShowArray(secondarray, size);
    
    cout<<"==============================="<<endl;
    delete[] firstarray;
    firstarray = new int[size];
    for(int i=0;i<size;i++)
    {
      firstarray[i]=secondarray[i];
    }
    
    cout<< "firstarray: \t";
    ShowArray(firstarray, size);
    cout<< "secondarray:\t";
    ShowArray(secondarray, size);
    
    
    delete[] firstarray;
    delete[] secondarray;
    return 0;
}
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
int *firstarray = new int(size);
Так вы создайте указатель не на массив, а на int со значением size. Скорее всего вы хотели сделать так:
int *firstarray = new int[size];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы