Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 969
от 17.01.2008, 23:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 473, Экспертов: 51
В номере:Вопросов: 2, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 118156: Здраствуйте, не могли бы вы помочь в решении этой задачи: Даны целые массивы А[10],B[10],C[10]. Каждый массив преобразован по правилу: если компоненты массива образуют убывающую последовательность, то все отрицательные компоненты следует заменить...
Вопрос № 118157: Здравтсвуйте, уважаемые эксперты! Прошу найти ошибку в моём коде Возникает ошибка при выделении памяти для массива PathList //---------- while(ofn.lpstrFile[nOffset]!='{ PathList[i] = new char [strlen(ofn.lpstrFile)+s...

Вопрос № 118.156
Здраствуйте, не могли бы вы помочь в решении этой задачи:
Даны целые массивы А[10],B[10],C[10]. Каждый массив преобразован по правилу: если компоненты массива образуют убывающую последовательность, то все отрицательные компоненты следует заменить на значение 0. В противном случае массив остается без изменений.

Заранее спасибо.
Отправлен: 12.01.2008, 19:22
Вопрос задал: Володька Зырянов (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: X-men
Здравствуйте, Володька Зырянов!
В приложении - текст вашей программы.
Программа написана на VC++.
В будущем, пожалуйста, указывайте в своём вопросе на чём нужно писать вашу программу (Borland, Microsoft, или ещё что-то...).

Я вырезала спорный комментарий. Вы сюда помогать пришли - можно помогать, не критикуя возможности спрашивающих.
-----
∙ Отредактировал: Shapoklak (Академик)
∙ Дата редактирования: 14.01.2008, 17:35

Приложение:

Ответ отправил: X-men (статус: 6-ой класс)
Ответ отправлен: 12.01.2008, 22:51


Вопрос № 118.157
Здравтсвуйте, уважаемые эксперты! Прошу найти ошибку в моём коде
Возникает ошибка при выделении памяти для массива PathList
//----------
while(ofn.lpstrFile[nOffset]!='{
PathList[i] = new char [strlen(ofn.lpstrFile)+strlen(ofn.lpstrFile+nOffset)+1]; wsprintf(PathList[i],"%s\%s",ofn.lpstrFile,ofn.lpstrFile+nOffset);
SendMessage(list,LB_ADDSTRING,0,(LPARAM)ofn.lpstrFile+nOffset);
nOffset+=strlen(ofn.lpstrFile+nOffset) + 1;
MessageBox(0,PathList[i],"PATH",MB_OK);
i++;
}
//---
Весь код в приложении
P.S. MSVC 2005

Приложение:

Отправлен: 12.01.2008, 19:26
Вопрос задал: Xeladen (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: heap11
Здравствуйте, Xeladen!

PathList в программе описан так

char **PathList;

Трактовать это можно, как массив указателей на массивы символов.

Т.е. PathList[0] , PathList[1], PathList[2], ... - указатели на массивы символов

и под эти массивы в программе память выделяется:

PathList[i] = new char [...

под сам же массив указателей PathList память не выделена.
Далее, попытка освободить память, которую не выделяли:

delete [] PathList;

также может приводить к непредсказуемым последствиям.

Замечу, кстати, что последний оператор вовсе не освобождает память выделенную под массвы символов PathList[i].
Законный порядок может быть следующим

1) Выделение памяти под PathList
PathList = new char*[nn];
2) Теперь можно использоваь PathList [i] для 0 <= i < nn;
PathList[i] = new char[...];

Освобождение памяти должно быть выполнено в обратном порядке,
а именно, сначала для тех i, для которых была выделена память под PathList[i]
и только для них освобождается память
3) delete PathList[i];

и лишь после этого можно выполнить
4) delete PathList;
Ответ отправил: heap11 (статус: 5-ый класс)
Ответ отправлен: 13.01.2008, 00:26


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное