С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Ошибка в функции, связанная с использованием памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить Задачю по теме: Обработка символьной и строковой информации http://www.cyberforum.ru/cpp-beginners/thread813341.html
Результаты вступительных экзаменов в вуз предоставлены в виде списка из N строк, в каждой строке которого записаны фамилия студента и оценки по каждому из M экзаменов. Фамилия и оценки разделены...
C++ Динамические массивы Даны целое число n и последовательность действительных чисел r1, r2, ..., rn, среди которых заведомо есть как отрицательные, так и положительные. Получить x1*y1+...+xs*ys, где x1, ..., xp -... http://www.cyberforum.ru/cpp-beginners/thread813313.html
Массив: Построить массив из нулей и единиц, в которой bi = 1 тогда и только тогда, когда в i-ой строке матрицы есть хотя бы отрицательный элемент C++
Даны натуральное число n, действительная квадратная матрица порядка n. Построить последовательность b1, b2, …, bn из нулей и единиц, в которой bi = 1 тогда и только тогда, когда в i-ой строке матрицы...
C++ Ввод\вывод одномерного массива (printf)
Одномерный массив x с 4-мя элементами Ввод идет нормально, а вот вывод - всегда 0, в чем проблема? x= 1 x= 2 x= 3 x= 4 x=0.000000 ВЫПОЛНЕНИЕ SUCCESSFUL (общее время: 1s) #include <stdio.h>...
C++ Исправить код сортировки массива http://www.cyberforum.ru/cpp-beginners/thread813301.html
Добрый вечер) Обращаюсь к вам за помощью. Есть программа, которая должна сортировать массив, а также выводить соответствующие данные из массива. Может кто-нибудь поможет исправить ошибки, а то сама...
C++ Динамические структуры. Стек (помогите найти ошибку) помогите найти ошибку. Есть задание: построить стек, элементами которого являются слова текста,которые считываются из текстового файла. Слова отделяются друг от друга запятыми, пробелами и другими... подробнее

Показать сообщение отдельно
shau-kote
3 / 3 / 0
Регистрация: 24.06.2012
Сообщений: 50

Ошибка в функции, связанная с использованием памяти - C++

20.03.2013, 02:11. Просмотров 559. Ответов 1
Метки (Все метки)

Все доброго времени суток.

Помогите, пожалуйста, найти ошибку в моей функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <wchar.h>
#include "functions.h" // файл с прототипами функций
 
wchar_t* cleanwchar_t out[], const wchar_t in[])
{
    int n = wcslen(in);
    wchar_t *str = new wchar_t[n];
    wcscpy(str, in);
 
    out[0] = L'\0';
    wchar_t *state;
 
    wchar_t *word = wcstok(str, L" ", &state);
 
    while (NULL != word) {
        if (wcslen(word) > 1) {
            wcscat(out, word);
            wcscat(out, L" ");
        }
        word = wcstok(NULL, L" ", &state);
    }
 
    delete state;
    delete[] str;
    return out;
}
Функция выделяет из исходной строки слова и записывает их в итоговую, игнорируя слова длиной в одну букву.

Бьюсь уже несколько дней, но никак не могу понять, почему попытка использовать функцию программу вызывает вот такую ошибку:
Код
*** Error in `./a.out': free(): invalid next size (fast): 0x08610338 ***
a.out: malloc.c:2369: sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)' failed.
Аварийный останов (core dumped)
Как я понял, проблема связана с освобождением памяти.
Я также выяснил, что она возникает после цикла, т.е. уже на последних строках. Причём возникает она не всегда, иногда функция корректно отрабатывает. А иногда не возвращает ничего, хотя и не вызывает ошибки.

Ткните, пожалуйста, носом, где я не прав. :\
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.