Error: Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted
Нужно посчитать количество символов b в массиве a, выдаёт ошибку Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted. Вот код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
char a[] = "";
char b;
cin >> a;
cin >> b;
int count = 0, cinso = 0;
for (count = 0; a[count] != '\0';)
{
count++;
if (a[count] == b)
{
cinso++;
}
}
cout << cinso << endl;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Итак, выделяем место в памяти под строку a...
char a[] = "";
Выделен 1 (прописью: один) байт.
А сколько вы в нее читаете в
cin >> a;
Если больше 0 (прописью: нуля) символов, у вас проблемы. Потому что один байт надо оставить для нулевого символа...
Почему бы вам не указать размер массива для чтения побольше?