Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 19.02.2022
Сообщений: 2

Как избавиться от предупреждений С6385 и С6386 при работе с динамическим массивом?

19.02.2022, 21:30. Показов 2995. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо задать динамический массив структур из номера строки и указателя на строку и по запросу пользователя инвертировать одну из строк. При компиляции на моменте с инвертированием строки номер "a" компилятор VS Studio 2019 выдает предупреждения C6385 и C6386 (строки 51 и 52 соответственно). Никак не могу понять, отчего так. Код прилагаю.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <string>
 
struct recs {
    int k;
    char* str;
};
 
int main()
{
    int num;
    std::cout << "Enter num" << std::endl;
    std::cin >> num;
    std::cin.get();
    
    recs *Array = new recs[num]; //массив структур
    int *stringlength = new int[num]; //массив длин строк соответвующих элементов структур (для удобства)
    
    for (int i = 0; i < num; i++)
    {
        Array[i].k = i;
        std::string string;
        std::cout << "Enter string " << i+1 << std::endl;
        std::getline(std::cin, string);
        int size = string.length() + 1;
        stringlength[i] = size-1;
        
        Array[i].str = new char[size]; //динамический массив для хранения i-й строки
        for (int j = 0; j < size; j++)
        {
            Array[i].str[j] = string[j];
        }
    }
 
    try
    {
        int a;
        std::cout << "Enter the number of string to invert" << std::endl;
        std::cin >> a;
        int invert = a - 1;
        if (a > num)
            throw "There is no such string";
        if (a < 1)
            throw "There is no such string";
        
        int len = strlen(Array[invert].str);
        int k = len - 1;
        for (int i = 0; i < (int)((len-1) / 2); i++)
        {
            char t;
            t = Array[invert].str[i];
            Array[invert].str[i] = Array[invert].str[k];
            Array[invert].str[k] = t;
            k = k - 1;
        }
    }
    catch(const char*)
    {
        std::cout << "Error: there is no such string";
        delete[] Array;
        delete[] stringlength;
        Array = 0;
        stringlength = 0;
        exit(0);
    }
    std::cout << "" << std::endl;
 
    for (int z = 0; z < num; z++)
    {
        std::cout << Array[z].k+1 << " || " << Array[z].str << std::endl; 
        delete[] Array[z].str; //возвращение памяти системе
    }
    delete[] Array; 
    delete[] stringlength;
    Array = 0;
    stringlength = 0;
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2022, 21:30
Ответы с готовыми решениями:

При завершении работы кода программа выдаёт ошибку срабатывания точки останова, и предупреждения С6386, С6385
#include&lt;iostream&gt; using namespace std; int main() { int stop = 10; int quantity = 1; int *arr = new int; for...

Ошибка при работе с динамическим массивом
Добрый день! Не могу найти ошибку при работе с динамическим массивом. Хочу использовать доступ к данным как к двумерному так и...

Ошибка при работе с динамическим массивом
Всем доброго времени суток! Для осуществления алгоритма нужно ипользовать массив размерностью 639х479. Я использую динамический массив,...

5
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
19.02.2022, 21:48
А у вас #include <cstring> подключен?
0
фрилансер
 Аватар для Алексей1153
6467 / 5682 / 1131
Регистрация: 11.10.2019
Сообщений: 15,145
19.02.2022, 21:56
Цитата Сообщение от savvakhrenkov Посмотреть сообщение
выдает предупреждения
текст предупреждений то какой ?

Добавлено через 2 минуты
savvakhrenkov, кстати, это учебное задание на динамические массивы или боевой код? В последнем случае можно всё упростить
0
0 / 0 / 0
Регистрация: 19.02.2022
Сообщений: 2
19.02.2022, 22:06  [ТС]
C6385 Чтение недопустимых данных из "Array[invert].str": доступный для чтения объем равен "size*1" байт, однако считать можно только "2" байт.
C6386 Переполнение буфера при записи в "Array[invert].str": доступный для записи объем равен "size*1" байт, однако записать можно только "2" байт.

Добавлено через 4 минуты
Цитата Сообщение от Алексей1153 Посмотреть сообщение
это учебное задание на динамические массивы или боевой код
Учебное задание
Надеюсь, вопросы по таким темам не запрещены правилами? Не нашел такого пункта, если что, поправьте меня.

Добавлено через 2 минуты
Цитата Сообщение от ram876 Посмотреть сообщение
А у вас #include <cstring> подключен?
Подключена библиотека
Code
1
<string>
. На
Code
1
<cstring>
мой VS плюется и не находит.
0
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
19.02.2022, 22:10
Цитата Сообщение от savvakhrenkov Посмотреть сообщение
не находит.
Как тогда strlen может работать?
0
 Аватар для PencilTorch
90 / 60 / 32
Регистрация: 06.08.2020
Сообщений: 220
19.02.2022, 22:21
В VS нормально работает с #include<string> хотя да, по идее strlen это сишный прикол.

А предупреждения мне думается это студию смущает некоторая непонятность переменной invert. Но на работу это не влияет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2022, 22:21
Помогаю со студенческими работами здесь

Ошибка при работе с динамическим массивом
Народ можете подсказать пожалуйста, появляется вот такая ошибка при запуски вот такого кода #include &lt;iostream&gt; using...

Ошибка при работе с динамическим массивом
При работе внутри цикла компилятор пишет об исключении при нарушение прав доступа при чтении, очевидно, это из-за динамического массива....

Ошибка при работе с динамическим массивом
ошибка heap corruption detected: after normal block &quot;#355&quot; Ситуация такая, научился работать с динамическим массивом, чтение, вывод на...

Ошибка при работе с динамическим массивом
Добрый день! Не могу найти ошибку при работе с динамическим массивом. Хочу использовать доступ к данным как к двумерному так и...

Ошибка при работе с динамическим массивом строк
Всем привет, выполнял задание по программированию. Задание заключается в создании таблицы для спортивных игр. Есть динамический массив...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru