![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
FCM |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Простой вопрос.
При использовании такой функции MVC выдает предупреждение warning C4172: returning address of local variable or temporary , но считает правильно (в чем можно убедиться добавив в тело функции отладочную печать ) CodeBlocks + GCC не выдает предупреждение и считает правильно. Так можно так делать? |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
||||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
нет, нельзя
считает правильно потому, что значение локальной переменной (созданной на стеке и удаленной при выходе из функции) еще никем не перетирается попробуй так
|
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
если очень хочется - то можно возвращать указатель на статическую переменную
*** или на динамическую (только не забыть удалить потом)
Это сообщение отредактировал(а) zim22 - 12.10.2009, 11:25 |
||||
|
|||||
FCM |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: нет Всего: 9 |
Спасибо!
|
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
лучше возвращать std::auto_ptr на эту переменную это так, к слову ![]() |
|||
|
||||
маерсон |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
а если так:
это все к тому, чтобы отправить через сокет send(skt, GetCh(), 128, 0) Так можно? Удалять-то не знаю где. Или тоже, желательно через std::auto_ptr? Это сообщение отредактировал(а) маерсон - 13.10.2009, 11:32 |
|||
|
||||
niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
Удаляешь то, что вернула эта функция, после использования. Да. --------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
маерсон |
|
||||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
А как удалять правильно, где ни читаю - мнения расходятся:
где просто
а где
Говорят, что delete[] не высвобождает память. ![]() |
||||
|
|||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
если квадратные скобочки в new были - то и в delete они должны быть иначе - обычный delete кто? голоса у тебя в голове? Это сообщение отредактировал(а) zim22 - 13.10.2009, 12:21 |
|||
|
||||
niXman |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 211 Регистрация: 4.7.2009 Репутация: 0 Всего: 0 |
--------------------
if ( !c++ ) { *power--; this->wussiness += 10;} |
|||
|
||||
маерсон |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 9.2.2009 Репутация: нет Всего: нет |
niXman, линк чего? ответ на официальный запрос СМИ?
http://www.daniweb.com/forums/thread46675.html Это сообщение отредактировал(а) маерсон - 13.10.2009, 12:55 |
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
ну и что? статья как статья. на английском. говорится в ней о том, как делать нельзя и как можно. всё там правильно. маерсон, учи английский ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |