Форум программистов, компьютерный форум CyberForum.ru

Что значит такое использование указателей - C++

Восстановить пароль Регистрация
 
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 14:20     Что значит такое использование указателей #1
Разбираю прогу для клиент сервера и никак не могу понять что значит такое использование указателей

1)
C++
1
char buff[100];
потом в функцию передается в виде параметра такая запись
C++
1
&buff[0]
Что это значит ?

2)
C++
1
int len;
в функцию передается
C++
1
(char*)&len
А тут что и зачем непонятно вроде len переменная типа int что тут вообще происходит ?

3)
C++
1
2
3
4
char*    buff
int len;
 
buff = new char[len];
А тут что присваивается указателю buff объясните ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
22.12.2013, 14:26     Что значит такое использование указателей #2
1) адрес первого элемента массива. Можно было бы написать просто buff.
2) преобразование типа int* в тип char*
3) После выделения памяти ее адрес присваивается указателю buff
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 14:35  [ТС]     Что значит такое использование указателей #3
palva,
2) преобразование типа int* в тип char*
Но тут же обычный int у переменной, не int*
И если на пальцах к примеру
int len=7;

передавая в функцию параметр
(char*)&len

будет то же самое что и
char buf[1];
buf[0]="7"; ?


3) После выделения памяти ее адрес присваивается указателю buff
Это не очень понятно если на пальцах то что происходит ?
int опять преобразуется в char или что ?
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
22.12.2013, 14:39     Что значит такое использование указателей #4
Цитата Сообщение от nill Посмотреть сообщение
Но тут же обычный int у переменной, не int*
У переменной int, берем адрес - получаем int* далее преобразовываем.

Добавлено через 1 минуту
Цитата Сообщение от nill Посмотреть сообщение
будет то же самое что и
char buf[1];
buf[0]="7"; ?
buf[0]="7"; не должно компилироваться. Ошибка.
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 14:57  [ТС]     Что значит такое использование указателей #5
palva,
C++
1
2
char buf[1];
buf[0]='7'; ?
ну да нужно однойные кавычки, но это тоже самое что и (char*)&len ?
C++
1
buf=(char*)&len;
выдает ошибку
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
22.12.2013, 15:14     Что значит такое использование указателей #6
Нет, это не одно и то же.
Цитата Сообщение от nill Посмотреть сообщение
выдает ошибку
а также сообщает вам, в чем эта ошибка заключается.
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 16:05  [ТС]     Что значит такое использование указателей #7
palva,
да теперь понял

еще вопрос остался без ответа
3) После выделения памяти ее адрес присваивается указателю buff
Это не очень понятно если на пальцах то что происходит ?
int опять преобразуется в char или что ?
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
22.12.2013, 16:18     Что значит такое использование указателей #8
Цитата Сообщение от nill Посмотреть сообщение
int опять преобразуется в char или что ?
C++
1
buff = new char[len];
Здесь нет никаких преобразований. new char возвращает char* переменная buff имеет тот же тип char*.
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
22.12.2013, 16:57  [ТС]     Что значит такое использование указателей #9
palva,
buff = new char[len];

Здесь нет никаких преобразований. new char возвращает char* переменная buff имеет тот же тип char*.
А что в итоге будет в buff ?
значение из len только преобразованное из int в char ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 17:05     Что значит такое использование указателей
Еще ссылки по теме:

Использование указателей C++
C++ Использование массивов и указателей
Что значит такое объявление typedef int (*A) ( )? C++

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

Или воспользуйтесь поиском по форуму:
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
22.12.2013, 17:05     Что значит такое использование указателей #10
Цитата Сообщение от nill Посмотреть сообщение
А что в итоге будет в buff ?
Указатель на выделенную память длины len. Смотрите описания оператора new.
Yandex
Объявления
22.12.2013, 17:05     Что значит такое использование указателей
Ответ Создать тему
Опции темы

Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru