С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Нарушение границ массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция не меняет значение аргументов (за ее пределами) http://www.cyberforum.ru/cpp-beginners/thread626888.html
Код: //заголовочный #ifndef HTPOTC_H #define HTPOTC_H class Rational{ public: Rational(int = 1,int = 2,int = 1,int = 2);
C++ Значения элементов массива проверить на кратность 3 и результатами заполнить массив II 1. Создать 3 одномерных массива одинаковой размерности. а) I массив заполнить случайными числами в пределах от -8 до 8. б) Значения элементов этого массива нужно проверить на кратность 3 и... http://www.cyberforum.ru/cpp-beginners/thread626886.html
C++ cerr
Объясните почему используют std::cerr для вывода ошибок,а не обычный std::cout к примеру?
C++ Б-дерево
Пишу бедерево. Столкнулся с проблемой, что fseek и fwrite едят очень много времени. Кто может подсказать более быструю замену этим функциям, либо какой-то нетривиальный подход для организации записи?
C++ Отрицательный размер массива http://www.cyberforum.ru/cpp-beginners/thread626843.html
#include <iostream> #include <windows.h> using namespace std; int main() { setlocale(LC_ALL, "russian"); int arrSize;
C++ Чем плох std::map? std::map ? подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9700 / 5650 / 964
Регистрация: 25.07.2009
Сообщений: 10,873
22.07.2012, 21:06
Цитата Сообщение от alsav22 Посмотреть сообщение
Так реагирует функция strcpy(), на попытку скопировать в массив (адрес в первом аргументе) больше, чем размер массива - 1.
Функция strcpy() тоже никаких размеров не проверяет
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main() {
    char s1[] = "bla bla bla", s2[] = "";
    
    cout << strcpy(s2, s1) << endl;
    
    return 0;
}
Код
~/cpp/strings $ g++ -o out_of_bounds out_of_bounds.cpp 
~/cpp/strings $ ./out_of_bounds 
bla bla bla
За что и была объявлена мелкософтовскими умниками неблагонадёжной и заменена собственным велосипедом, который эти умники и рекомендуют использовать.

И просто на всякий случай: оба мои примера показывают, как нельзя делать. То, что оно отработало в силу определённых обстоятельств - не показатель. С памятью так нельзя обращаться.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.