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

Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread1117492.html
Всем привет. Может кто нибудь подсказать с чего начать при создании класса для работы с файлами на подобии ostream( а точнее как правильно реализовать методы open, close,seek,read,write) и возможно...
C++ Программа для расчета математического примера Помогите пожалуйста с кодом программы,заранее спасибо.Пример 10 http://www.cyberforum.ru/cpp-beginners/thread1117489.html
Класс рациональных дробей C++
Разработать класс рациональных дробей. Предусмотреть в нём все методы, которые необходимы, чтобы новый тип данных мог быть использован наравне с системными типами: арифметические операции, операции...
C++ Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. Собственно вот проблема..Мне помогали писать данную программу но она что-то все равно не работает. Она просто...
C++ Работа с координатами векторов http://www.cyberforum.ru/cpp-beginners/thread1117478.html
Привет, ребята. Вновь пришёл к Вам с вопросами. Поставили задачу написать проект калькулятора, который будет выполнять операции с координатами векторов. На вход поступает 2 вектора, координаты...
C++ Звуковой сигнал! #include <ctime> #include <stdio.h> #include <locale.h> #include <string> #include <conio.h> #include <windows.h> #include <iostream> using namespace std; подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18259 / 6384 / 440
Регистрация: 30.03.2009
Сообщений: 17,669
Записей в блоге: 28
12.03.2014, 22:20
Цитата Сообщение от vlad_light Посмотреть сообщение
Мне интересно, бывает ли такое, что память выделилась строго "впритык" к краю?
Не то, чтоб бывает, а именно так оно и делается. Во всяких IDE типа Borland или Visual C зачастую между переменными остаются дырки (для каких-то отладочных целей), но в боевом режиме твой код почти наверняка затрёт y[0]

Добавлено через 4 минуты
А... под "краем" ты имел в виду не край переменной, а край памяти. Бывает. Ты работаешь в виртуальной памяти, которая отображается на физическую память. Чтобы случилась поломка, нужно, чтобы переменная x попала впритык к правой границе страницы памяти. Вероятность такого равна 4 делать на 4096 (4 - выравнивание int'а, 4096 - размер страницы). Чтобы случилась поломка, нужно, чтобы в соседней странице не было ни одной переменной (т.е. виртуальные адреса были некорректными). Конкретно в твоём случае вероятность этого можно считать, что равна нулю, т.к. любой компилятор расположит переменные x и y подряд друг за другом. Но вот если ты удалишь y как глобальную переменную и будешь выделять эту память malloc'ом, то играя величиной size ты не более, чем за 1024 шага нарвёшься на поломку
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru