Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2012, 10:59   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

решил я поигратся хотел устроить подение винды. в книгах пишут надо с указателями осторожно обращатся.
объявил я 10000 указателей, разиминовал их, и присвоил им число.
Код:
#include <iostream>
#include<stdlib.h>
#include<conio.h>

using namespace std;

int main()
{
    int *ptr[10000];
    for(int i = 0; i < 10000; i++)
    {
        *ptr[i] = 1;
    }
    getch();
    return 0;
}
скомпилировал запустил, думал комп зависнит или еще что, но...
виндовс просто выдал сообщение об ошибке и все

немного модифицировал прогу и заметил сообщение об ошибке выдается уже на первом указателе

так может и об освобождении динамической памяти не беспокоится, зачем? виндовс стерпит.
как вредоносный код написать, чтоб я заметил?

Последний раз редактировалось Stilet; 05.08.2012 в 11:16.
SAMOUCHKA вне форума Ответить с цитированием
Старый 05.08.2012, 11:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Винду так просто не уронить. Этот код скорее для ДОС будет ужасающий.
Цитата:
так может и об освобождении динамической памяти не беспокоится, зачем?
Не. Не беспокойся. Пусть пользователи твоей программы проклинают тебя при очередных тупняках программы, которая загаживает ресурсы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.08.2012, 14:05   #3
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
так может и об освобождении динамической памяти не беспокоится, зачем? виндовс стерпит.
Если Вы оцениваете качество программ по тому, роняет она систему или нет, а не по ее содержанию и функциям, то да, не беспокойтесь.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 05.08.2012, 14:38   #4
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Если Вы оцениваете качество программ по тому, роняет она систему или нет, а не по ее содержанию и функциям, то да, не беспокойтесь.
вы меня не совсем правильно поняли.
кривые программы я писать не хочу
просто я хотел на практике увидеть вредоносное деиствие программы. я и динамическую память не освобождал(специально) ни каких изменений в работе компа не заметил в чем это должно проявлятся
и еще можете показать код который уронил бы винду
SAMOUCHKA вне форума Ответить с цитированием
Старый 05.08.2012, 14:43   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
я и динамическую память не освобождал(специально) ни каких изменений в работе компа не заметил в чем это должно проявлятся
при сжирании памяти будет наьлюдаться снижение произоводительности(особенно если обращаться к этой памяти)
при нагрузке проца тоже снижаеться производительность(другие приложения получают меньше квантов).

а насчет вредных программ, здесь это запрещено.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.08.2012, 14:50   #6
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
а насчет вредных программ, здесь это запрещено.
понял нельзя - так нельзя. просто хотел в позновательных целях
SAMOUCHKA вне форума Ответить с цитированием
Старый 05.08.2012, 14:53   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

случайно убить винду проблематично(если речь не о драйверах).
а намеренно, дык, не вопрос)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.08.2012, 14:53   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Написал это я недавно одну программу, которая активно использует массивы в одной часто вызываемой функции (двумерный и трехмерный). И в силу некоторых причин про освобождение памяти начисто забыл (обычно за мной такого не водится).
Запустил программу на выполнение, поначалу все вроде шло хорошо, но через некоторое время программа начала выдавать сообщения об ошибке - мол, out of memory, по 10 раз в секунду. Не помню, успел прибить через диспетчер задач или винда сама ее грохнула во избежание, но в любом случае - программа упала, заполонив нижний правый угол экрана своими сообщениями об ошибках. Когда запустил ее заново, увидел, как она быстро начала поглощать память, так что мне даже страшно представить, сколько она успела захватить перед коллапсом.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 05.08.2012, 16:02   #9
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

простите за назойливость.
посмотрите на мой код. понятно что я залез на чужой участок памяти и пытался в нем изменить значение. но как виндос об этом узнает?
SAMOUCHKA вне форума Ответить с цитированием
Старый 05.08.2012, 16:28   #10
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
вы меня не совсем правильно поняли.
кривые программы я писать не хочу
просто я хотел на практике увидеть вредоносное деиствие программы. я и динамическую память не освобождал(специально) ни каких изменений в работе компа не заметил в чем это должно проявлятся
и еще можете показать код который уронил бы винду
Уронить винду специально - не так уж и сложно.
Другое дело, когда это получается не преднамеренно.

Например, однажды я баловался с winapi. Использовал функции, которые сами по себе совершенно безобидные. Но их совместное использование вызывало синий экран смерти.

Мне пришлось потратить время, что бы найти причину трагедии:

http://www.programmersforum.ru/showt...EE%EB%FC%F6%FB
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Безопасность e_e_n Безопасность, Шифрование 40 03.09.2010 01:11
Безопасность x_AN777 Помощь студентам 2 08.05.2010 23:30
Безопасность xap4o PHP 4 15.02.2010 00:02