Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
||||||
1 | ||||||
Функция strcpy03.04.2011, 08:22. Показов 11939. Ответов 27
Метки нет (Все метки)
цель очевидна. почему не работает?
0
|
03.04.2011, 08:22 | |
Ответы с готовыми решениями:
27
Функция strcpy функция strcpy и strcat Что делает функция strcpy(t, f) Функция strcpy() не копирует строку |
152 / 150 / 44
Регистрация: 09.02.2010
Сообщений: 407
|
||||||
03.04.2011, 08:43 | 2 | |||||
0
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
03.04.2011, 08:54 [ТС] | 3 |
dampir_sanek, нужно что бы функция была void а все манипуляции со строками проводились бы в теле фунуции, но не в main-e.
0
|
03.04.2011, 09:24 | 4 | |||||
nikkka, таким образом в теле функции можно менять строки, но не указатели, т.к. указатели передаются по значению (т.е. копируются в стек), и все изменения указателей в ф-ции не касаются указателей в main(). Что бы реализовать то, что ты хочешь, нужно сделать так:
1
|
34 / 34 / 8
Регистрация: 07.06.2010
Сообщений: 118
|
||||||
03.04.2011, 09:28 | 5 | |||||
Или так:
1
|
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
|
||||||
03.04.2011, 09:31 | 6 | |||||
Писать свои реализации std не в учебных целях не есть гуд. strcpy() из string сделало бы всё гораздо лучше. ну это имхо.
касательно вашего вопроса:
0
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
03.04.2011, 09:43 [ТС] | 7 |
0
|
41 / 41 / 9
Регистрация: 28.01.2011
Сообщений: 175
|
||||||
03.04.2011, 10:50 | 8 | |||||
Почему не так?
0
|
Модератор
12832 / 7569 / 1764
Регистрация: 25.07.2009
Сообщений: 13,965
|
||||||
03.04.2011, 12:55 | 9 | |||||
Вернёт указатель на байт, следующий за нулевым в строке.
0
|
03.04.2011, 13:01 | 10 | |||||
nikkka, правильный код копирования приведён в постах 8 и 9. А твой код копирует указатель на данные (а не сами данные)
Добавлено через 1 минуту Кстати, по поводу постов 8 и 9. В таких случаях на современных компиляторах с большой вероятностью выскочит предупреждение из разряда "а может имелось в виду сравнение вместо присваивания". Чтобы этого не происходило, надо сделать дополнительное экранирование круглыми скобками
0
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
||||||
03.04.2011, 13:05 | 11 | |||||
Я думаю причина в том что:
нужно объявлять как массив символов.
0
|
03.04.2011, 13:12 | 12 |
Нет, причина не в этом. Истинная причина описана в моём посте выше. А вот по твоей причине код будет ломаться на исполнении после того, как функцию strcpy переписать правильно
0
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
||||||
03.04.2011, 13:16 | 13 | |||||
ой не заметил.. ну ктож знал что автор ещё и strcpy будет переписывать.
Добавлено через 2 минуты Только не вздумай использовать такой код в реальных проектах:
0
|
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
|
||||||
03.04.2011, 13:16 | 14 | |||||
неверно, =)
0
|
03.04.2011, 13:19 | 15 |
Иногда полезно всё-таки читать тему (благо она пока небольшая), чтобы не боянить
Vladimir., у тебя тоже копируются указатели, а не данные. Так что неверен твой код Добавлено через 1 минуту По поводу строковых литералов (строка в кавычках): Изменить значение указателя
0
|
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
|
|
03.04.2011, 13:23 | 16 |
Vladimir., Какраз верно. Ошибка сегментирования при char*
Добавлено через 3 минуты баян в том что тему растянули.. а не в том что я скопировал
0
|
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
|
|
03.04.2011, 14:02 | 17 |
Установил последнюю версию g++.. nxnx прав, мои извинения.
0
|
БТР - мой друг
333 / 277 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
|
|||||||||||
28.06.2011, 13:51 | 18 | ||||||||||
Сообщение от [Freeman
А когда сменил массивы на указатели:
0
|
bmstu-team
|
||||||
21.03.2014, 10:24 | 19 | |||||
Ребят, почему не работает?
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||
21.03.2014, 10:37 | 20 | |||||
Не стоит возвращать указатель на локальный объект:
1
|
21.03.2014, 10:37 | |
21.03.2014, 10:37 | |
Помогаю со студенческими работами здесь
20
Массивы строк и функция strcpy Функция strcpy () - строка должна быть пустой? Не работает функция gets(), strcpy() и другие функции с строками strcpy() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |