LINUX.ORG.RU

вопрос ламер по программированию


0

0

Господа шарящие, расскажите тупому плиз. Я пытаюсь создать матрицу элементов double (статически) размером [x*x][x*x]. Когда x > 31 прога сегфолтается. Я не понимаю почему. Вроде 31 в четвертой степени (примерно миллион) даблов должен занять примерно 8 мб памяти. Не так что бы и много. Или дело не в памяти?

прошу не бить меня. я не программист. приходится программировать в связи с научными интересами моего руководителя.

спасибо

anonymous
Ответ на: комментарий от Devix

ну понятно, в первом случае удаляется 10 объектов, во втором один. Насколько я помню, во втором случае поведение вообще не определено. Так что ты хотел сказать ? :)

alex_custov ★★★★★
()
Ответ на: комментарий от Devix

>> Какая разница как он вызывает delete
> На этот я тебе ответил надеюсь ты понял?

Только вопрос был другой. Меня не интересовал вопрос, который ты процитировал, меня интересовал вопрос, который я задал:
> Какая разница как он вызывает delete и вызывает ли он его вообще, если программа закончила свое выполнение?

Я один вижу тут разницу?

На счет привыкать. Я вообще не касался этого момента. Ты можешь мне просто ответить на те вопросы, которые я задал в 2х предыдущих своих сообщениях:
> И это, ты хочешь сказать, что даже если закрыть ФФ, то может не вся память вернуться в систему? И теоретически за конечное время можно добиться ситуации, когда в системе не окажется свободной памяти и придется делать ребут?

2 вопроса. Возможные ответы: Да/Нет/Не знаю. Я хочу получить 2 ответа. (не знаю почему, но многие люди обычно если отвечают, то только на последний вопрос).

Если ответ на первый вопрос "Да", то хочу услышать ответ на:
> Ты можешь это как-нибудь объяснить?

Желательно поподробнее, хотя можно ответить и "не знаю".
Спасибо.

// dearas

anonymous
()
Ответ на: комментарий от alex_custov

> ну понятно, в первом случае удаляется 10 объектов, во втором один. Насколько я помню, во втором случае поведение вообще не определено. Так что ты хотел сказать ? :)

Интересный ты человек, ты понял но ты не понял. Какойто каламбур получается?

Devix
()
Ответ на: комментарий от Devix

ты написал

>>Если выделяется память под стандартные типы то скорее всего никакой разници нет, опять таки зависит от реализации компилятора. Если же выделяется память под пользовательские типы то разница есть, сам надеюсь знаещь?

и привёл потом код. У меня есть кое-какие соображения, я их пока оставлю при себе, просто хотелось бы уточнить что ты конкретно имел ввиду ?

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

Пока вам на пальцах не объясниш похоже вы и не поймете?

На вопрос:

>Какая разница как он вызывает delete и вызывает ли он его вообще, если программа закончила свое выполнение?

>anonymous 20.01.2008 16:21:06

Я ответил что разница есть и привел пример. Что в этом непонятного?

Devix
()
Ответ на: комментарий от alex_custov

> т.е. ты утверждаешь что при выходе из программы, память не освобождается ?

А где я об этом говорил?

anonymous
()
Ответ на: комментарий от Devix

ты можешь развёрнуто ответить ? ты сказал

>>>Какая разница как он вызывает delete и вызывает ли он его вообще, если программа закончила свое выполнение?

>Я ответил что разница есть и привел пример. Что в этом непонятного?

Так в чём разница между программой 1 и 2 после того как она "закончила свое выполнение" ?

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

> Так в чём разница между программой 1 и 2 после того как она "закончила свое выполнение" ?

Вот я уже отвечал(надеюсь поймеш):

>> и вызывает ли он его вообще, если программа закончила свое выполнение?

>Для данной программы можно и принебречь вызов delete. Но не стоит привыкать к этому, так как в языке C++ есть действия которые выполняются неявно. Devix (*) (21.01.2008 15:27:50)

Devix
()
Ответ на: комментарий от anonymous

>>> Какая разница как он вызывает delete >> На этот я тебе ответил надеюсь ты понял?

>Только вопрос был другой. Меня не интересовал вопрос, который ты процитировал, меня интересовал вопрос, который я задал: >> Какая разница как он вызывает delete и вызывает ли он его вообще, если программа закончила свое выполнение?

На этот вопрос я тебе уже ответил, и если ты не понял что я с тобой отчасти согласился и показал какие проблемы могут возникнуть, то это твои проблемы.

> На счет привыкать. Я вообще не касался этого момента. Ты можешь мне просто ответить на те вопросы, которые я задал в 2х предыдущих своих сообщениях: >> И это, ты хочешь сказать, что даже если закрыть ФФ, то может не вся память вернуться в систему? И теоретически за конечное время можно добиться ситуации, когда в системе не окажется свободной памяти и придется делать ребут?

Просто эты твои 2 вопросо последовали из-за непонимания моего ответа на первый твой вопрось.

А на эти вопросы как я понял ты и сам можешь себе ответить.

>Спасибо. Всегда рад помочь.

Devix
()
Ответ на: комментарий от Devix

Хех, а я ведь просил ответы ввиде "Да/Нет/Не знаю". Все просто.

Ладно. Пофиг, буду считать, что это теоретически возможно, так как ОСи тоже программы (или их набор), а значит тоже могут косячить.

Кроме того как я и говорил, я погуглил, просто хотел услышать твой прямой ответ. Жаль, что не услышал, но уговорить тебя -- это выше моих сил. Нашел я вот это:
http://sdteam.com/?tid=735
Начиная с "Но программные объекты могут порождать другие «побочные эффекты», которые не прекращаются после завершения работы программы".

Хотя статья мне показалась несколько сомнительной.

// dowing

anonymous
()
Ответ на: комментарий от anonymous

Например простой пример:

Конструктор создает лок-файл, а деструктор удаляет его. Если не удалишь или неправильно удалишь, то лок файл не будет удален.

Devix
()
Ответ на: комментарий от anonymous

Например простой пример:

Конструктор обьекта создает лок-файл, а деструктор удаляет его. Если не удалишь или неправильно удалишь обьект, то лок файл не будет удален.

Devix
()
Ответ на: комментарий от anonymous

> но уговорить тебя -- это выше моих сил

Да это я занудой притворялся, на самом деле я не такой. Извини если было трудно.

И давай обнимимся, всетаки сегодня праздник. :)

Devix
()
Ответ на: комментарий от Devix

> И давай обнимимся, всетаки сегодня праздник. :)

Да все нормально, мне просто действительно интересно, вот и доставал тебя, причем именно про память, а не про delete и delete[], их разницу и возможные последствия.

А какой праздник?

// beader

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.