Ошибка сегментации в этом коде (ошибка -1073741819) - PullRequest
0 голосов
/ 08 марта 2019

Когда я запускал код через Visual Studio, я получал ошибку -1073741819, и когда я использовал онлайн-компилятор c, я получал: «Ошибка сегментации (ядро сброшено)».

Сначала я получил «двойное освобождение или повреждение"ошибка, но потом я немного изменил код.Я уже некоторое время пытаюсь обнаружить ошибку, но не могу.

Чтобы указать, arr - это массив длиной 2n, содержащий только цифры от 1 до n.

Это проблемный код:

 bool islegal(int arr[], int n)
{
 int *count = (int*)malloc(sizeof(int)*(n+1));
 for (int i = 0; i < 2*n; i++)
 {
    count[arr[i]]++;
    if (count[arr[i]] > 2)
    {
        free(count);
        return false;
    }
 }
 for (int i = 0; i < 2*n; i++)
 {
    if (count[arr[i]] == 2)
    {
        if (i+arr[i]<2*n && arr[i] != arr[i + arr[i]])
        {
            free(count);
            return false;
        }
    }
 }
 free(count);
 return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...