Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
#1

Ошибка в функции - C++

05.11.2013, 19:55. Просмотров 201. Ответов 4
Метки нет (Все метки)

(Задача см.вложение)

Помогите пожалуйста! Ошибка:
Необработанное исключение по адресу 0x0F971DA9 (msvcr110d.dll) в Проект2.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCCCCCCCC.

Думаю, что-то напутал с динамической памятью.

Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <Windows.h>
#include <cstring>
using namespace std;
 
#define rus setlocale(0,"rus");SetConsoleCP(1251);SetConsoleOutputCP(1251);
 
struct stringy
{
    char * str;
    int ct;
};
 
void set(stringy & a, char b[]);
void show(const stringy & a, int n = 1);
void show(const char b[], int n = 1);
 
int main()
{
    stringy beany;
    char testing[] = "abc";
    set(beany, testing); 
    show(beany);
    show(beany,2);
    show(testing);
    testing[0] = 'b';
    testing[1] = 'a';
    show(testing,3);
    show("Готово!");
}
 
void set(stringy & a, char b[])
{
    a.ct = strlen(b);
    b = new char[];
    strcpy(a.str,b);
    delete [] b;
}
 
void show(const stringy & a, int n)
{
    for (int i = 0; i < n; i++)
        cout << a.str << endl;
}
 
void show(const char b[], int n)
{
    int a = strlen(b);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < a; j++)
            cout << b << endl;
    }
}
Миниатюры
Ошибка в функции  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 19:55     Ошибка в функции
Посмотрите здесь:

Ошибка в функции - C++
я написал функцию для загрузки графа из файла, но при попытке открытия происходит ошибка ...что нужно...

Ошибка в функции! - C++
Господа знатоки, открытое шифрование Эль-Гамаля, функция дешифрования работает не правильно, например я шифрую текст: завтра в 8 часов ,...

Ошибка в функции - C++
Помогите пожалуйста исправить ошибку bool zero (double*Ar, int n) { bool flag = false; int j = 1; do{ if (Ar=0)...

ошибка в функции - C++
Где может быть ошибка? и почему обычно она возникает? Компиляция... 2.cpp 2.cpp(79) : error C4430: отсутствует спецификатор...

Функции. Ошибка( - C++
здравствуйте, помогите пожалуйста найти ошибку в тексте. Проблема вот в чем: Матрица просто вводится, но не преобразовывается. ...

Ошибка в функции - C++
Привожу код: // создаёт новую строку, добавляя текущую // строку к rhs String String::operator+(const Srting&amp; rhs) { unsigned...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13054 / 7317 / 815
Регистрация: 27.09.2012
Сообщений: 18,053
Записей в блоге: 3
Завершенные тесты: 1
05.11.2013, 19:59     Ошибка в функции #2
C++
1
b = new char[];
где кол-во выделяемых элементов?
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
05.11.2013, 20:01  [ТС]     Ошибка в функции #3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
b = new char[];
где кол-во выделяемых элементов?
Поставил b = new char[a.ct], ошибка та же вылазит.
Croessmah
Модератор
Эксперт CЭксперт С++
13054 / 7317 / 815
Регистрация: 27.09.2012
Сообщений: 18,053
Записей в блоге: 3
Завершенные тесты: 1
05.11.2013, 20:05     Ошибка в функции #4
delete
Цитата Сообщение от CHELOVEKPAUK Посмотреть сообщение
Поставил b = new char[a.ct], ошибка та же вылазит.
а под символ '\0' тоже место надо!

Добавлено через 1 минуту
C++
1
2
    b = new char[];//Выделили память
    strcpy(a.str,b);//Копируем мусор из только что выделенной памяти в a.str
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2013, 20:19     Ошибка в функции
Еще ссылки по теме:

Ошибка в Функции - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include &lt;iomanip.h&gt; bubbleSort(int , const int); ...

Ошибка в функции - C++
Всем доброго суток, не могу понять где ошибка, помогите: #include &lt;iostream&gt; #define N 4 using namespace std; void sortVib(int...

Ошибка функции - C++
Почему у меня при обработке наипростейшей функции появляется ошибка: 1&gt;------ Построение начато: проект: Fun2, Конфигурация: Debug...

Ошибка в функции - C++
Вот программа проблема с функцией &quot;ras&quot; не правильно работает надо вернуть значения vi,vj,v. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
CHELOVEKPAUK
13 / 3 / 2
Регистрация: 01.08.2013
Сообщений: 332
Записей в блоге: 1
05.11.2013, 20:19  [ТС]     Ошибка в функции #5
Цитата Сообщение от Croessmah Посмотреть сообщение
delete

а под символ '\0' тоже место надо!

Добавлено через 1 минуту
C++
1
2
    b = new char[];//Выделили память
    strcpy(a.str,b);//Копируем мусор из только что выделенной памяти в a.str
C++
1
2
3
4
5
6
void set(stringy & a, char b[])
{
    a.ct = strlen(b);
    a.str = new char[a.ct + 1];
    strcpy(a.str,b);
}
Проблема была в том что память я выделял не для того, куда она нужна! Второй массив то уже инициализирован.
Теперь работает. Спасибо
Yandex
Объявления
05.11.2013, 20:19     Ошибка в функции
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru