Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
1

Передача в функцию указателя

18.12.2012, 14:29. Показов 757. Ответов 7
Метки нет (Все метки)

Почему плохо передавать в функцию указатель на строку или массив и возвращать указатель на строку или массив?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2012, 14:29
Ответы с готовыми решениями:

Передача указателя на шаблонную функцию в другую функцию
Пишу тест для нескольких улучшений квиксорта с измерением времени. Функция benchmark принимает...

Передача указателя на функцию
Есть класс в котором: typedef void(*setChar)(int x, int y, wchar_t c); void...

Передача указателя на функцию
Доброго дня Форумчане. Хотелось бы узнать как вызывать функцию получив на нее указатель? пример...

Передача указателя в функцию
Здраствуйте. Если не охота читать гору текста то этот абзац + последущий за ним код можете...

7
Twilight Parasite
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
18.12.2012, 14:30 2
ArtMaster, Передать указатель-это наоборот самый кошерный способ!
Кто тебе сказал такую глупость?
Зачем тогда еще указатели-то?
0
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
18.12.2012, 14:33  [ТС] 3
да где-то тут на форуме видел, только не могу найти где именно, еще много споров было, поэтому и стало интересно почему.
0
418 / 383 / 113
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 14:40 4
Для примера. Допустим есть что-то вроде этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct Z
{
    int i;
    float f;
    double d;
    char str[100];
};
 
void function(Z *ptr)
{
 
}
В функцию function передается указатель на структуру. Плюс от этого - это экономия памяти.
И программа будет быстрее работать.
Ведь в эту функцию передаются только 4 байта вместо всей структуры целиком.
1
3240 / 2043 / 350
Регистрация: 24.11.2012
Сообщений: 4,898
18.12.2012, 14:44 5
ArtMaster, говорили тут о том, что нельзя возвращать указатели на локальные объекты. По понятным причинам - после выхода из функции они не будут существовать.
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
18.12.2012, 14:50 6
0x10, так можно
C++
1
2
3
4
5
6
7
long* fun(long *p)
{
    return p;
}
 
long num = 10;
fun(&num);
Конено, лучше же так
C++
1
2
3
4
long& fun(long& num)
{
    return num;
}
0
Twilight Parasite
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
18.12.2012, 14:50 7
0x10, Как раз тут получается херня. Можно выделить память, можно ее заполнить и вернуть указатель(в gcc 4.7 работает, хотя это неправильно. Ну или правильно сделанное неправильно)
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
18.12.2012, 14:52 8
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Можно выделить память, можно ее заполнить и вернуть указатель
Ну не на стэке ведь, а в куче.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2012, 14:52

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Передача указателя в функцию
Поиском не пользовался, возможно данный вопрос уже проскакивал. Проблема том, что VS2010 на отрез...

Передача указателя в функцию
Здравствуйте. Прошу помощи, сижу уже пару часов читаю мануалы, но так и не смог до конца понять,...

передача указателя на функцию
Помогите исправить ошибку уже незнаю как быть В бивает ту ошибку error C2664: Generate:...

Передача ссылки и указателя в функцию
передал ссылку в одну функцию - нормально, передал в другую - выводит неверное значение, тоже самое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.