Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2011, 14:58   #11
Геральт
Новичок
Джуниор
 
Регистрация: 09.06.2011
Сообщений: 7
По умолчанию

Ага, теперь все понятно. Всем спасибо за помощь.
Геральт вне форума Ответить с цитированием
Старый 09.06.2011, 15:07   #12
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

а юзать string уже не модно, нэ?
Kukurudza вне форума Ответить с цитированием
Старый 09.06.2011, 15:16   #13
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Kukurudza
а изучать дифуры до интегралов и производных модно? человек с основами разбирается, а не пишет промышленный код
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 11.06.2011, 06:01   #14
Геральт
Новичок
Джуниор
 
Регистрация: 09.06.2011
Сообщений: 7
По умолчанию

юзать string конечно модно, но эксперименты с кодом никто не отменял
Геральт вне форума Ответить с цитированием
Старый 02.07.2011, 14:14   #15
Kulikcha
Пользователь
 
Регистрация: 16.06.2011
Сообщений: 15
По умолчанию

Кстати сказать, правильный вариант твоего кода будет такой.

Код:
char *s=new char[];
 *s="111";
 cout<<s;
 delete [] s;
Если ты не поставишь звёздочку перед указателем, то ты фактически поместишь не данные в память, а данные в указатель. Таким образом, твой указатель будет ссылаться по адресу 111, который скорее всего уже занят какими-то важными данными. Но компилятор умолчит об этой ошибке. Значала разыменуй указатель а потом помещай в память данные.
Kulikcha вне форума Ответить с цитированием
Старый 02.07.2011, 14:26   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Kulikcha, да хоть ставь звездочку хоть не ставь, толку ноль.
массив за вас не копируется.
Цитата:
Если ты не поставишь звёздочку перед указателем, то ты фактически поместишь не данные в память, а данные в указатель.
не осилил смысла в данном высказывании.
Цитата:
Таким образом, твой указатель будет ссылаться по адресу 111, который скорее всего уже занят какими-то важными данными.
, то есть по вашему компилятор переведет строку в число и присвоит её указателю???
что за бред...
будет присвоено указателю адрес на "111".
Цитата:
Значала разыменуй указатель а потом помещай в память данные.
разименовывание(в том числе через индекс) для работы с элементом по указателю, но не с массивом сразу.
там надо strcpy использовать.(или иные копирующие блоки данных функции)
Код:
new char[];
да и размер массива не задан.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 02.07.2011 в 14:44.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.07.2011, 00:10   #17
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Кстати сказать, правильный вариант твоего кода будет такой.

Код:
char *s=new char[];
 *s="111";
 cout<<s;
 delete [] s;


Геральт

А теперь - действительно правильный вариант (((Ж

Но прежде - возьмите код, любезно предоставленный by Kulikcha и отправьте его... прямиком в мусорное ведро. Он банально нерабочий и некомпилируемый. Если в ведро жалко, можно отправить в более соответствующее ему место(:

правильный вариант:

Код:
char* s = new char[100];
strcpy(s, "111");
std::cout << s;
delete [] s;
Rififi вне форума Ответить с цитированием
Старый 03.07.2011, 04:59   #18
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Если нужен указатель на константную строку, то можно просто так:
Код:
const char* s = "111";
An1ka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
указателем на char в структуре H1ghlander Общие вопросы C/C++ 12 18.05.2013 23:49
Массив с указателем Seferus Общие вопросы C/C++ 2 13.11.2010 17:57
c++ массив char 0479 Общие вопросы .NET 2 19.09.2010 23:20
Массив типа char * das Ma:dchen Общие вопросы C/C++ 9 13.06.2010 17:21
проблема с указателем на массив Sergey.Voloxov Общие вопросы C/C++ 7 14.03.2010 17:47