double free or corruption (out): 0x00000000020f6e70 ***

162
27 февраля 2019, 08:50

Я абсолютно не могу понять , почему почти два идентичных кода, но в первом из них выдает ошибку double free or corruption (out): 0x00000000020f6e70 ***, а во втором нет (написано на С++)

1 код:

    class Solution {
    public:
    void nextPermutation(vector<int>& nums) {
        int n = nums.size();
        int i = n - 1;
        while(i > 0 && nums[i] < nums[i - 1]){
            i--;
        }
        if(i == 0){
            reverse(nums.begin(), nums.end());
            return;
        }
        --i;
        int j = n - 1;
        while(j >= 0 && nums[j] <= nums[i]){
            --j;
        }

        swap(nums[i], nums[j]);
        reverse(nums.begin() + i + 1, nums.end());

    }
};

2 код:

    class Solution {
public:
    void nextPermutation(vector<int>& nums) {
        int n = nums.size();
        int i = n - 2;
        while (i >= 0 && nums[i + 1] <= nums[i]) {
            i--;
        }
        if(i == -1){
            for(int i = 0; i < (int)(n / 2) ; ++i){
                swap(nums[i], nums[n - 1 - i]);
            }
            return;
        }
        int j = n - 1;
        while(j >= 0 && nums[j] <= nums[i]){
            --j;
        }
        swap(nums[i], nums[j]);
        reverse(nums.begin() + i + 1, nums.end());
    }
};

В чем разница? Объясните, пожалуйста

READ ALSO
цикл должен выполняться до 8, включительно, но выполняется лишь до 6

цикл должен выполняться до 8, включительно, но выполняется лишь до 6

цикл должен выполняться до 8, включительно, но выполняется лишь до 6Суть задачи не важна, так как она сделана, важен сам процесс автоматизации

134
Директивы препроцессора #ifdef #define и #undef

Директивы препроцессора #ifdef #define и #undef

В чем здесь проблема? Почему n всегда равно либо 100 и 100, либо 200 и 200, как ни крути

164
Как получить размер матрицы и её элементы от пользователя?

Как получить размер матрицы и её элементы от пользователя?

Как мне сделать так, чтобы размер матрицы и значение её элементов я вводил сам (то есть динамически)?

147
Создание меню выбора C++

Создание меню выбора C++

вообщем нужно создать меню выбора пунктов, например:

170