Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++: ошибка С6385: чтение недопустимых данных из "str": доступный для чтения обьем равен 100 байт, а считать можно -1 б.

Влад Захаров Ученик (98), закрыт 1 год назад
Не могу понять в чем тут проблема. Код компилируется но результат не правильный.


#include <iostream>
#include <string.h>
#include <conio.h>


using namespace std;
int main()
{
setlocale(LC_ALL, "RUSSIAN");
char str[100];
char str2[100];
int y=0;
int kol = 0;
int s1;
int s2;

cout << "Введите текст"<<"\n";
cin.get(str, 100);
s1 = strlen(str);
str2[0] = str[0];

for(int i=0; i< s1; i++)
{

if (str[i + 1] == 0) {
y++;
str2[y] = str[i];
}
else {
if (str[i] == ' ' && str[i-1] != ' ') \\ ошибка C6385
{
y++;
str2[y] = str[i - 1];
y++;
str2[y] = str[i + 1];



}
}
}
s2 = strlen(str2);
cout<<endl << s2 << endl;


for (int i = 0; i < strlen(str2); i++)
{

if (str2[i] == str2[i + 1]) {
i++;
kol++;
}
}
cout << endl << kol;

system("pause");

return 0;
}
Лучший ответ
Остальные ответы
Сергей Гений (59259) 2 года назад
Это не ошибка - это предупреждение. При выходе за пределы массива программа может как работать, так и крашнуться, если произойдет попытка чтения/записи в защищенной области.
А если и работает, вы можете изменить свои-же данные и получите непредсказуемое поведение.
Похожие вопросы