![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| gepard |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
На экране:
Как "избавиться" от этих 4-ох звёздочек при выведении? -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
||||
|
|||||
| Unknown_Error |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 3.1.2005 Репутация: нет Всего: нет |
Перво, что приходит в голову, так это зачем выделять память?
Можно просто присвоить указатель:
Кажется здесь надо так:
Для завершающего символа 0! |
||||||
|
|||||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
а через strcpy не проще будет?
|
|||
|
||||
| gepard |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Будет присвоена ссылка, а значит - после изменения chr измениться tmp.
И как мне его воткнуть? Продемонстрируй. Это сообщение отредактировал(а) gepard - 27.1.2005, 08:50 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
В С каждая строка заканчивается завершающим символом, код - 0 или char '\0' strlen возвращяет размер строки без завешающего символа, т.е. количество видимых символов... когда освобождаешь память надо всегда на один символ больше и при копировании также..эсли это не strcpy а memcpy который не ведает что копирует, ему глубоко наплевать..просто берет эту часть памяти и копирует в другую...надо скопировать на один символ больше чтобы завершающий символ тоже скопировался... |
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
Если использовать sizeof(char), то тогда уж везде:
-------------------- Удачи |
|||
|
||||
| S.A.P. |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 9 Всего: 71 |
а дальше
Добавлено @ 11:02 Мой код работает, проверил |
||||||
|
|||||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
Вот, собственно моё решение...
Всё работает... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Ну если уж на то пошло...тогда вот мое решение..
Немного критики, зачем тебе столько инклудов если ты их так и так не используешь??? Ну может человеку просто понадобилось скопировать строку а не написать Hello World... |
||||
|
|||||
| Gelert |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.1.2005 Репутация: нет Всего: нет |
При выделении памяти под tmp, как тебе уже посоветовали, выделяй на 1 байт больше а потом:
tmp[strlen(tmp)]=0; printf("%s",tmp); |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Зачем??? строку из которой копируешь уже содержит нулевой символ...просто надо скопировать на один символ больше...так ты лишний раз вызываешь strlen... |
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
Perchilla, это просто повезло, что наступил в неиспользуемую память. В другой раз может и не повезти. -------------------- Удачи |
|||
|
||||
| gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 2 Всего: 40 |
Вот так должно быть... Всё правильно... Я просто нулвеой символ не так втыкал...
-------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 6 Всего: 15 |
-------------------- Удачи |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |