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

Stack around the variable was corrupted - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнение посимвольно http://www.cyberforum.ru/cpp-beginners/thread448827.html
Добрый день, стоит такая задача: Даны две строки. Определите, совпадают ли они сравнив их посимвольно. Напишите для этого функцию bool Compare(string S1, string S2). Вход: две строки. Выход: слово...
C++ Нужна помощь с ассемблером. Пыталась сама написать, да что-то не очень у меня получается. Задание состоит в том, чтобы найти минимальное положительное число в массиве, состоящем из 10 чисел. Вот, что накалякала: #include... http://www.cyberforum.ru/cpp-beginners/thread448824.html
C++ Дополнительная "каретка" консоли
Вопрос: возможно ли создать в программе дополнительную консольную каретку для вывода текста? Например чтобы текст выводился одновременно в двух местах?
Как из матрицы смежности получить матрицу инцидентности? C++
Здравствуйте. Можно ли из матрицы смежности получить матрицу инцидентности? Матрица смежности у меня для связного неориентированного графа без петель. Вот пример сгенерированной матрицы смежности...
C++ Алгоритм LZ78 или трудности реализации http://www.cyberforum.ru/cpp-beginners/thread448804.html
Предыстория: одним солнечным утром, когда был уже совсем вечер, решил я написать архиватор. Просканировав достаточно большое количество ресурсов, понял, что LZ78 - моя мечта, любовь с первого...
C++ Обход "End Of File". Работа с файлами Доброе утро всем! Вопрос таков: Делаю копирование из одного файла в другой, копирование по-символьное, до того как переменная не будет равна "EOF" , но EOF = буковке "я" маленькой.. т.е. если в... подробнее

Показать сообщение отдельно
Altair5
0 / 0 / 0
Регистрация: 19.02.2012
Сообщений: 11

Stack around the variable was corrupted - C++

19.02.2012, 14:06. Просмотров 831. Ответов 2
Метки (Все метки)

Здравствуйте,
при решении задания по созданию класса возникла ошибка Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted:
Суть программы такова, создаем массив элементов класса Животные (с полями номер, наименование, класс животного и вес). Необходимо предусмотреть цикл вывода на экран значений экземпляра класса,
экземпляры идентифицируются по полю "номер записи". Выход из цикла осуществить посредством ввода символа 'q'.
При отладке все работает нормально, но при вводе q выводит названную выше ошибку.
Для проверки я ввожу:
1)naimen - vk; ves-20; klass - ml;
2)naimen - be;ves-45; klass-ml;
Помогите пожалуйста.
Демонстрационная программа:
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
#include "Givotnie.h";
#include "stdio.h";
 
void main ()
{int n,i;
char a;
 CGivotnie Anim[2];
n=0;
for(i=0;i<2;i++)
{Anim[i].InitClass(n++);
}
while(1)                     /* Цикл вывода на экран значений полей экземпляра класса*/
{printf("Vivesti elementi? y/q \n");
  scanf("%s",&a);
if (a=='y')
{ 
    a=' ';
  printf("Vvedite nomer\n");     
  scanf("%d",&n);
  getchar();
  Anim[n].PrintClass(n);
}
if (a=='q') {break;}
}
}
Файл заголовка Givotnie.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef Givotnie
#define Givotnie
#endif
#include "stdio.h";
class CGivotnie
{  int nomer;
   char kl[3];
   char naimen[3];
   double ves;
 
public:
void PrintClass (int n);
void InitClass(int n);
void vvod_naim ();
void vivod_naim ();
void vvod_ves ();
void vivod_ves ();
void vvod_kl ();
void vivod_kl ();
};
Файл реализации методов:
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
#include "Givotnie.h";
void CGivotnie :: InitClass (int n)
{nomer = n;
 vvod_naim();
 vvod_ves();
 vvod_kl();
}
void CGivotnie::PrintClass (int n)
{ printf("Nomer = %d",nomer);
  vivod_ves();
  vivod_kl();
  vivod_naim();}
void CGivotnie::vvod_ves ()
{printf("Vvedite ves \n");
  scanf("%lf",&ves); 
}
void CGivotnie::vvod_naim ()
{printf("Vvedite naimenovanie\n");
 scanf("%3s",&naimen);
     getchar();
}
void CGivotnie::vvod_kl ()
{printf("Vvedite klass\n");
 scanf("%3s",&kl);}
void CGivotnie::vivod_ves()
{printf("ves elementa=%3.2lf  ",ves);}
void CGivotnie::vivod_naim()
{printf("naimenovanie elementa = %3s\n",naimen);}
void CGivotnie::vivod_kl ()
{printf("klass elementa=%3s   ",kl);}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru