|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Результаты опроса: Хорошо ли вышел класс String | |||
Безусловно | 0 | 0% | |
Вполне | 0 | 0% | |
Сойдет | 0 | 0% | |
Очень плохо | 2 | 100.00% | |
Хорошо, но std-шный лучше | 0 | 0% | |
Отлично, но std-шный не хуже | 0 | 0% | |
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 2. Вы ещё не голосовали в этом опросе |
|
|
Опции темы | Поиск в этой теме |
06.10.2017, 00:05 | #1 | |
Пользователь
Регистрация: 10.04.2017
Сообщений: 66
|
Как узнать размер массива по ссылке
Здравствуйте. Подскажите. У меня есть функция которая разбивает строку на части (http://php.net/manual/ru/function.explode.php), есть класс по аналогии со строками в PHP. Функция создает массив строк и разбивает в него строку. Скажите пожалуйста как узнать его размер (массив передается из функции по ссылке) и можно ли через try catch понять что мы обращаемся к недоступной памяти?
Вот весь код. Код:
Цитата:
где то видел Код:
|
|
06.10.2017, 03:03 | #2 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
И у вас носороговый слон выведен...Помесь С и С++, взято все самое худшее от обоих.
Вот так разбивать: Код:
|
06.10.2017, 06:00 | #3 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
new[] с delete?
|
06.10.2017, 06:16 | #4 | |||
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
ух...решил почитать еще кода
Код:
Цитата:
1. strtok память не выделяет и 2. strtok портит исходную строку. Далее, Код:
Далее Код:
Цитата:
Код:
В итоге что имеем? Сомнительное удаление нуля и попорченую исходную строку, кроме того, "массив" результата верен, пока жива исходная строка. Бред. Ах да, исходя из Цитата:
Последний раз редактировалось alexzk; 06.10.2017 в 06:50. |
|||
06.10.2017, 11:03 | #5 |
Пользователь
Регистрация: 10.04.2017
Сообщений: 66
|
Я не хочу использовать std библиотеки так что вектор отпадает. С токеном я не много не понял. result это массив объектов. при присвоении данные из token копируются, так что после удаления токена данные не портяться. Исходная строка тоже не портиться потому что при передаче параметров функции создается копия строки, соответственно вне функции все идет своим чередом. Счетчик получается из функции. Функция находит вхождение подстроки в строку, то есть я заранее знаю сколько токенов я могу получить из строки. Подскажите как узнать размер массива возвращаемого этой функцией, возвращается то ссылка на массив
|
06.10.2017, 11:23 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
06.10.2017, 11:58 | #7 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Цитата:
Код:
Код:
Создали новуб память в 1 байт: Код:
Код:
Код:
|
|
06.10.2017, 12:02 | #8 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
06.10.2017, 12:06 | #9 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
|
06.10.2017, 12:14 | #10 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
http://en.cppreference.com/w/cpp/language/delete
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как узнать выделенный размер документа. | valerij | Microsoft Office Excel | 10 | 26.07.2015 11:48 |
Как узнать размер массива String^ | calypso | Общие вопросы C/C++ | 4 | 12.11.2013 14:53 |
Как узнать размер изображения | Lokos | Мультимедиа в Delphi | 3 | 21.12.2009 16:44 |
Как узнать размер файла? | photozaz | Общие вопросы Delphi | 4 | 01.08.2008 00:29 |
Как узнать размер массива | мандарин | Общие вопросы Delphi | 2 | 30.05.2007 19:18 |