![]() |
|
Модераторы: bsa |
![]()
|
|
| Riddik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
strcpy() копирует в первую строку (первый аргумент) вторую строку (второй аргумент).
strcat() добавляет в конец первой строки (первый аргумент), вторую строку (второй аргумент). Приемлимо ли делать так, если надо написать свои аналоги ф-ии:
и
Тесты показывают одинаковые результаты как от ф-ий из стандартной библиотеки, так и от этих. Но возникает несколько непонятных моментов. Если в ф-ию mystrcat() первым аргументом передаётся указатель на массив из, скажем, 10 символов, то когда начинается добавление второй строки, то указатель, ссылающийся на этот первый массив, начнёт передвигаться на байт "вперёд" за пределы этого массива, какую память он при этом будет перезаписывать? Нормально ли так вообще делать? P.S. Может это и не нужно, но условия такие: не использовать new и delete Это сообщение отредактировал(а) Riddik - 13.3.2009, 00:46 |
||||
|
|||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
используй malloc и free -------------------- |
|||
|
||||
| Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Этот код в корне неправильный:
Откуда уверенность, что память под str1 выделена в достаточной степени? А этот можно еще короче:
Гы. А оно надо? |
||||
|
|||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
-------------------- |
|||
|
||||
| Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Anikmar, ага, я ж про тоже и спрашивал
Dmi3ev, классная статья - спасибо!!! |
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
Dmi3ev, класная статья ! только мне интересно как это реализовано в STL можно гденибуть исходники этих функций глянуть ?
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Заголовочный файл STL - это собственно и есть исходник. На то это и шаблоны. Открывайте и смотрите. |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 3 Всего: 36 |
http://local.joelonsoftware.com/wiki/%D0%9...%B2%D0%B0%D0%BC
Почему, читая эту статью, меня не покидало ощущение что читать её должна моя бабушка? ... В оригинале статья называлась Back to Basics и была написана 11 декабря 2001 года Вот почему Это сообщение отредактировал(а) Rififi - 13.3.2009, 12:08 |
|||
|
||||
| Remiznik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 379 Регистрация: 30.4.2005 Репутация: 1 Всего: 1 |
запустил под отладчиком функция strcpy() вызвала фаел strcat.asm .... и там работала асемблеровскими командами !
значит STL написан на асм ? |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 13 Всего: 41 |
ну извини Крутая у тебя бабушка, раз такие статьи читает, завидую... -------------------- |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |