WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Массив ломается

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Массив ломается
Susik опубликован 14-01-2002 01:22 MSK   Click Here to See the Profile for Susik   Click Here to Email Susik  
В общем есть функция
void Func1(char *z)
{z=new char[12];}
Вопрос в том, будет ли существовать созданный в ней динамический массив после завершения функции? На опыте работало тока 1 раз, потом отказывалось. :)
DEiL опубликован 14-01-2002 01:54 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
массив твой улетил в гиперпространство такими темпами%)
new char[12] присваивает z НОВЫЙ адрес, а старый остаётся нетронутым :)
DmitryRyvkin опубликован 14-01-2002 02:15 MSK     Click Here to See the Profile for DmitryRyvkin  Click Here to Email DmitryRyvkin     
Пиши лучше так.
void Func1(char *&z)
{z=new char[12];}
Тока зачем в данном случае это надо. Принудительно по нужному адресу все равно память не выделиш
Susik опубликован 14-01-2002 02:32 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
Я так и думал...
Лана. Улетел - ну и х" с ним. Я его иницилизирую тогда просто так, не в этой долбанной функции. :) А ваще удобно было бы...
DimaK опубликован 17-01-2002 10:45 MSK     Click Here to See the Profile for DimaK  Click Here to Email DimaK     
Кто куда улетает?!
char *p;
void func(char &p)
{
p=new[12];
}
но и пример DmitryRyvkin должен работать
Valery опубликован 17-01-2002 11:13 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
Мужики, ну неужели так лениво проверить, что вы пишете, тем более для новичка, он же вашу писанину может и за эталон принять.
Всего то пару ошибочек, но как смысл меняется.
char *p;
void func(char* &p)
{
p=new char[12];
}
Valery опубликован 17-01-2002 11:14 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
гуру, блин...
ertzog опубликован 17-01-2002 19:26 MSK     Click Here to See the Profile for ertzog  Click Here to Email ertzog     
Для того, что бы у тебя по выходу из функции
память освобождалась, используй alloca()
Кажется имеется в Single Unix Specification,
т.е. стандарт. Но в glibc точно есть.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.