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

Переполнение буфера . Что делать ? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работает программа http://www.cyberforum.ru/cpp-beginners/thread1177583.html
#include "stdafx.h" #include <conio.h> #include <stdio.h> #include <string.h> int main() { char s; /* буфер строки */ char strFrom; /* строка ОТКУДА */
C++ Базовый класс Deposit и три класса-наследника (банковские вклады) Здравствуйте. История такова: есть базовый класс Deposit и три класса-наследника (банковские вклады), в них же переопределенная виртуальная ф-ция расчета процента по вкладу. Также класс-контейнер. Так вот, при использовании собственно контейнера вместо нормальных чисел получаю 1.#INF либо же что-то вроде 9.71012e+063, в то время как без контейнера ф-ция считает все правильно, из всех трех... http://www.cyberforum.ru/cpp-beginners/thread1177579.html
Expected unqualified-id before '(' token . ошибка C++
Не могу понять, как убрать ошибку. In member function `matrica matrica::operator=(massiv&)': Expected unqualified-id before '(' token Помогите пожалуйста. #include<iostream>/*zagolovochnij fajl s klassami, funktsijami i peremennimi dlja organizacii vvoda-vivoda v jazike programmirovaniya C++*/ using namespace std;/*ob'javlenie prostranstva imen std.*/
C++ В текстовом массиве подсчитать сумму длин первых семи элементов
В текстовом массиве F$(10) подсчитать сумму длин первых 7-ми элементов .
C++ Изобразить этот эллипс, чтобы он мигал — желтый/черный http://www.cyberforum.ru/cpp-beginners/thread1177553.html
Здравствуйте, вот есть код, задача: изобразить этот эллипс, чтобы он мигал - желтый/черный, в общем такая мигающая "растровая" лампочка. Фрагмент кода предоставлен ниже, попробовал сделать этот через цикл - если счетчик четный - 1 цвет, если нечетный - другой, но к сожалению это не помогло. Хотелось бы сделать, чтобы цвет менялся при нажатии какой-либо клавиши, но что-то не особо выходит,...
C++ Почему программа себя странно ведет: зацикливается после ввода значений? Зацикливается после воода значений. Подскажите пожалуйста в чем может быть проблема. #include <fstream> #include <iostream> #include "Library.h" using namespace std; void addbook() { book one; подробнее

Показать сообщение отдельно
gazlan
2855 / 1803 / 271
Регистрация: 27.08.2010
Сообщений: 4,883
Записей в блоге: 1
16.05.2014, 13:15     Переполнение буфера . Что делать ?
Смысл этого кода постичь не в состоянии, но у вас очевидная логическая ошибка в (бесконечном) цикле while
Кликните здесь для просмотра всего текста
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <string.h>
 
#define BUF_SIZE              (80)
 
int main(int argc,char** argv)
{                                      
   char     pIn  [BUF_SIZE + 1];       // строка ввода
   char     res1 [BUF_SIZE + 1];       // строка результата 1
   char     res2 [BUF_SIZE + 1];       // строка результата 2
   char     modIn[BUF_SIZE + 1];       // модиф. строка ввода
   char     word [BUF_SIZE + 1];       // строка слова
 
   printf("Input string; ended symbol '#'\r\n");
 
   // Ввод исходной строки;
   // между словами любое число пробелов;
   // могут быть начальные и концевые пробелы;
   // перед нажатием Enter ввести символ '#'
   int   rc = scanf("%[^#]",pIn);            // строку вводим до символа '#'
 
   if (rc == -1)
   {  
      printf("Error: input data\r\n");
      return 1;
   }
 
   printf("in = %s\r\n",pIn);
   
   int   lenIn = strlen(pIn);
 
   // Модификация строки ввода;
   // между словами будет только ОДИН пробел;
   // начальные и концевые пробелы убраны;
   // подсчитано число слов
   char*    pCur = pIn;
 
   int   lenCur = 0;
   int   numW   = 0;
 
   *modIn = 0;
 
   int   len = 0;
 
   while (lenCur < lenIn)
   {  
      len = strspn(pCur," ");
 
      lenCur += len;
      pCur   += len;
      
      if (lenCur < lenIn)
      {  
         ++numW;
 
         len = strcspn(pCur," ");
         
         memcpy(word,pCur,len);
 
         word[len] = ' ';
         word[len + 1] = 0;
 
         strcat(modIn,word);
         
         lenCur += len;
         pCur   += len;
      }
   }
 
   len = strlen(modIn);
   
   modIn[len - 1] = 0;        // убрали последний пробел
 
   printf("modIn = %s\r\n",modIn);
 
   // Разбиение входной строки на 2 подстроки
   pCur = modIn;
 
   int   nn = numW / 2;
   
   for (int ii = 0; ii < nn; ++ii)
   {
       pCur = strchr(pCur,' ');
       ++pCur;                    // сдвинулись с пробела
   }
 
   pCur [-1] = 0;
   res1[0]   = 0;
 
   strcat(res1,modIn);
 
   res2[0] = 0;
 
   strcat(res2,pCur);
   
   printf("res1 = %s\r\n",res1);
   printf("res2 = %s\r\n",res2);
 
   printf("Ending, not errors");
 
   return 0;
}
Миниатюры
Переполнение буфера . Что делать ?  
 
Текущее время: 14:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru