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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread1117492.html
Всем привет. Может кто нибудь подсказать с чего начать при создании класса для работы с файлами на подобии ostream( а точнее как правильно реализовать методы open, close,seek,read,write) и возможно ли унаследовать их от самого класса ostream?
C++ Программа для расчета математического примера Помогите пожалуйста с кодом программы,заранее спасибо.Пример 10 http://www.cyberforum.ru/cpp-beginners/thread1117489.html
Класс рациональных дробей C++
Разработать класс рациональных дробей. Предусмотреть в нём все методы, которые необходимы, чтобы новый тип данных мог быть использован наравне с системными типами: арифметические операции, операции сравнения, преобразования тип. Программа выглядит вот-так: #include <iostream> #include <conio.h> #define show(x) #x << " = " << x << " " #define test(x) if(x) cout << #x << endl // Âû÷èñëåíèå...
C++ Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину.
Вывести на консоль те строки, длина которых меньше (больше) средней, а также длину. Собственно вот проблема..Мне помогали писать данную программу но она что-то все равно не работает. Она просто тупо зависает. Может кто помочь объяснить что в ней не так? Мб я просто неправильно заполняю строки? #include <stdio.h> #include <conio.h> #include <string.h> #include <iostream> using namespace...
C++ Работа с координатами векторов http://www.cyberforum.ru/cpp-beginners/thread1117478.html
Привет, ребята. Вновь пришёл к Вам с вопросами. Поставили задачу написать проект калькулятора, который будет выполнять операции с координатами векторов. На вход поступает 2 вектора, координаты каждого из которых x,y,z соответственно. Задача такая - как оформить координаты, чтобы было удобно работать с ними? //Пробовал делать x1,y1,z1,x2,y2,z2 переменными делать, но это быдло-код какой-то...
C++ Звуковой сигнал! #include <ctime> #include <stdio.h> #include <locale.h> #include <string> #include <conio.h> #include <windows.h> #include <iostream> using namespace std; подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
12.03.2014, 22:20     Memcpy, buffer overflow. Может ли возникнуть ошибка в функции memcpy
Цитата Сообщение от vlad_light Посмотреть сообщение
Мне интересно, бывает ли такое, что память выделилась строго "впритык" к краю?
Не то, чтоб бывает, а именно так оно и делается. Во всяких IDE типа Borland или Visual C зачастую между переменными остаются дырки (для каких-то отладочных целей), но в боевом режиме твой код почти наверняка затрёт y[0]

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