реклама на сайте
подробности

 
 
> c++ *указатель=*указатель
elusive
сообщение Apr 12 2011, 14:39
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 26-05-10
Пользователь №: 57 544



буду страшно благодарен коли кто знает подскажет... свои идеи кончились sad.gif

есть 2 указателя на char.
char *expression, *temp;

нужно по очереди присваивать значения строки expression строке temp, если это не пробел. делаю так:
while (*expression!='\0')
{
if (*expression!=' ') {*temp = *expression; temp++;}
expression++;
}

компилятор съедает, а в винде вылазит ошибка, что temp используется до того как был проинициализирован....

как грамотно скопировать значение ячейки памяти через указатели???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Apr 12 2011, 14:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



А где у вас инициализация указателей явными значениями-то? В примере ни один из указателей не проинициализирован. laughing.gif
Go to the top of the page
 
+Quote Post
elusive
сообщение Apr 12 2011, 15:26
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 26-05-10
Пользователь №: 57 544



Цитата(rezident @ Apr 12 2011, 20:43) *
А где у вас инициализация указателей явными значениями-то? В примере ни один из указателей не проинициализирован. laughing.gif


тот из которого переписываю (expression) указывает на строку.

Цитата(Idle @ Apr 12 2011, 20:58) *
Код
...

static void elx_scp(char *dst, const char *src)
{
        while (*src)
                if ((*dst = *src++) != ' ')
                        dst++;
        dst = '\0';
}

...
}



тот же результат: копирование символа происходит такой же операцией, то бишь *dst = *src++

Цитата(aaarrr @ Apr 12 2011, 20:44) *
И правильно вылазит: temp - это указатель, начальное значение которого вы не определили. Присвоение "*temp =" посылает данные в неизвестность.


хы... то есть всегда нужно память выделять temp = char new(80); ?



Сообщение отредактировал elusive - Apr 12 2011, 15:24
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01377 секунд с 7
ELECTRONIX ©2004-2016