Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача указателя, Передача указателя 
V
    Опции темы
нуп
Дата 29.7.2010, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Как правильно передавать указатель н а char в функцию?
Код

void test(char* c)
{
     c = new char[100];
     for(int i = 0; i < 100; i++)
           c[i] = 'a';

 }

char* c = 0;
test(c);
cout << c;  // Здесь будет 0;

Как передать, чтобы вывелось cout << c; ??!  smile 
PM MAIL   Вверх
djamshud
Дата 29.7.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Код

void test(char** c)
{
     *c = new char[100];
     for(int i = 0; i < 100; i++)
           (*c)[i] = 'a';
 }
char* c = 0;
test(&c);
cout << c;


Примерно так.

Добавлено через 1 минуту и 33 секунды
В конце строки нужно \0 поставить!


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
нуп
Дата 29.7.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



А как правильно удалять ?  smile  Просто delete c; или как массив delete[] c; или надо проходится по массиву и удалять все ?  smile 

Это сообщение отредактировал(а) нуп - 29.7.2010, 13:34
PM MAIL   Вверх
SenkraD
Дата 29.7.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: нет
Всего: 23



можно через ссылку
Код
void test(char&* c)
{
     c = new char[100];
     for(int i = 0; i < 100; i++)
           c[i] = 'a';
 }
char* c = 0;
test(c);
cout << c;



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
djamshud
Дата 29.7.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Код

delete[]с;

В вызывающем коде.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
нуп
Дата 29.7.2010, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ботокодер
**


Профиль
Группа: Участник
Сообщений: 987
Регистрация: 22.6.2009
Где: Кременчуг

Репутация: нет
Всего: 33



Спасибо всем  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0622 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.