Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915

Разница между обьявлениями чаров

06.02.2019, 08:55. Показов 2474. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

Подскажите пожалуйста, есть ли разница между эти двумя обьявлениеями Char`ов:

C++
1
2
3
4
5
6
7
8
9
10
11
char textos1[] = "A1:A1";
 
и
 
char textos[5];
        
textos[0] = 'A';
textos[1] = '1';
textos[2] = ':';
textos[3] = 'A';
textos[4] = '1';
Если применить к ним strlen, то в одном случае (textos1) получается, что число "5", что совпадает с числом символом, во втором случае (textos) - получается 21 символ ?

Получается разница между двумя этими записями есть ? Но какая ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2019, 08:55
Ответы с готовыми решениями:

Какая разница между различными сокетами (например, между 775 и 1155)?
Обясните пожалуйста какая разница между сокетами, пример есть сокет 775 и 1155 я понимаю что разем не тот процессора другие но! как насчет...

Разница между v1.1 и v2.0
Доброго времени суток, появилась потребность обновить прошивку биоса. Ища прошивку на сайте производителя появился вопрос какова разница...

Разница между j++ и ++j
Есть ли разница между for ( j=0; j < n; j++) и ( j=0; j < n; ++j) Видел , что так и так пишут. Сам же только по 1му способу

29
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
06.02.2019, 16:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Azazel-San Посмотреть сообщение
А вы думаете нужен ли VLA в С++?
Что вам мое мнение даст?

Лучше вот конфу почитайте: https://groups.google.com/foru... _4lgA1JYeg
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
06.02.2019, 16:51
Цитата Сообщение от DrOffset Посмотреть сообщение
Что вам мое мнение даст?
Как это что? Интересно же. Ваше мнение должно быть ничем не хуже того что описывают сильные умы, по ссылке которую вы скинули ниже.
Цитата Сообщение от DrOffset Посмотреть сообщение
Лучше вот конфу почитайте: https://groups.google.com/foru... _4lgA1JYeg
Но за ссылку тоже спасибо)

DrOffset, Я вот себе задал вопрос, допустим я бы хотел написать аллокатор на стеке, максимально эффективный и безопасный и не только для массивов, как это можно сделать, в отрыве от STL? Типо как для пулла объектов и что бы все это можно было менеджить?
0
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
06.02.2019, 17:01
Цитата Сообщение от Azazel-San Посмотреть сообщение
Ваше мнение должно быть ничем не хуже того что описывают сильные умы, по ссылке которую вы скинули ниже.
Мое мнение отличается тем, что ни на что не влияет. В отличие от товарищей по ссылке. Сила голоса, так сказать, отличается.

Цитата Сообщение от Azazel-San Посмотреть сообщение
Я вот себе задал вопрос
Банальную вещь скажу, но такие вопросы в отрыве от задачи мало смысла имеют
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
06.02.2019, 17:10
Цитата Сообщение от DrOffset Посмотреть сообщение
Мое мнение отличается тем, что ни на что не влияет.
Ну, так и скажите что не хотите говорить. Причем вырвали не ту фразу из моего ответа.
Цитата Сообщение от DrOffset Посмотреть сообщение
Сила голоса, так сказать, отличается.
Что-то эта сила голоса уже с года так 2013 ничего не дает.
Цитата Сообщение от DrOffset Посмотреть сообщение
Банальную вещь скажу, но такие вопросы в отрыве от задачи мало смысла имеют
А если что-то универсальное?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
06.02.2019, 17:22
Цитата Сообщение от Azazel-San Посмотреть сообщение
Как сказать, ну наверное от самого вектора не имеет смысла. Тем не менее что мешает сделать умную обертку над alloca?
Механизм работы стека мешает. После того как конструктор обертки завершен, стек должен быть приведен в исходное состояние. А значит все сделанные внутри конструктора вызовы alloca будут откачены. Если же мы обойдем эту проблему с помощью каких-то компиляторозависимых средств, так это VLA и получится. Компилятор массив как-то создает, а программист стандартными средствами повторить фокус не может.
Цитата Сообщение от Azazel-San Посмотреть сообщение
А это обошлось бы только малой кровью sizeof'a?
Еще не будут работать конструкции вида decltype(firstVLA) secondVLA. Правда, слабо себе представляю кому это будет мешать.
0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
06.02.2019, 18:00
Цитата Сообщение от Renji Посмотреть сообщение
Компилятор массив как-то создает, а программист стандартными средствами повторить фокус не может.
Там же вроде просто указатель стека смещают не на константу, а на переменную?
Цитата Сообщение от Renji Посмотреть сообщение
Еще не будут работать конструкции вида decltype(firstVLA) secondVLA. Правда, слабо себе представляю кому это будет мешать.
По ссылке выше, господа видят больше проблем.
Что-то я думаю VLA не пустять в С++, по крайней мере в таком виде в каком он был в C99.
0
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
06.02.2019, 18:14
Цитата Сообщение от Azazel-San Посмотреть сообщение
Что-то эта сила голоса уже с года так 2013 ничего не дает.
Вот именно что дает. Дает не включать подобные решения в стандарт.
Ведь было время когда это почти вошло, и даже побыло немного в черновике. И даже в GCC успели добавить это в реализацию core language. Но потом сила голоса таки решила, что не надо

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от Azazel-San Посмотреть сообщение
Причем вырвали не ту фразу из моего ответа.
А какую надо было? :)

0
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
06.02.2019, 18:17
Цитата Сообщение от DrOffset Посмотреть сообщение
Дает не включать подобные решения в стандарт.
Вижу у вас таки есть веское мнение по этому поводу, например ув. Renji считает что добавление VLA не понесет почти никаких потерь, а я вот что-то сомневаюсь. Обошлось бы только sizeof и decltype?
Цитата Сообщение от DrOffset Посмотреть сообщение
и даже побыло немного в черновике
Да я это видел.
Цитата Сообщение от DrOffset Посмотреть сообщение
Но потом сила голоса таки решила, что не надо
Но так и не понял почему? Какие проблемы были?
0
19506 / 10109 / 2463
Регистрация: 30.01.2014
Сообщений: 17,833
06.02.2019, 18:34
Цитата Сообщение от Azazel-San Посмотреть сообщение
А если что-то универсальное?
Разве такое вообще бывает?

Существующими средствами вы можете выделить буфер на стеке (стандартными или платформозависимыми способами) и навесить на него фасад аллокатора. Дальше как обычно. В любом случае для этого нужно четко понимать цели и выгоду от этих решений.

Добавлено через 14 минут
Цитата Сообщение от Azazel-San Посмотреть сообщение
Вижу у вас таки есть веское мнение по этому поводу, например ув. Renji считает что добавление VLA не понесет почти никаких потерь, а я вот что-то сомневаюсь.
Я, кажется, четко дал понять, что не собираюсь публично занимать какую-либо сторону, т.к. считаю подобные диалоги бестолковыми. Холивары - это потеря времени.

Цитата Сообщение от Azazel-San Посмотреть сообщение
Но так и не понял почему? Какие проблемы были?
Проблемы дизайна и отсутствия единой точки зрения на вопрос.
Последнее известнео мне резюме было таким:
Цитата Сообщение от Meeting in Lenexa, May 2015
The Array TS, which contains a language feature called “arrays of runtime bound” (ARBs) that’s essentially a toned-down version of C’s variable-length arrays (VLAs), and a library class dynarray for wrapping such a thing into a container interface, has been in limbo for the past year, as attempts to implement dynarray ran into difficulties, and proposals trying to replace it with something implementable got shot down one after the other.

At this meeting, EWG reviewed the status quo and addressed the question of what will happen to the Arrays TS going forward.

The status quo is this:

* Many people want simple stack arrays. Emphasis on simple (no “making it a member of a class”) and stack (no “it might be on the stack or it might be on the heap” business.)
* Some people want to be able to wrap such things into a class interface, so it knows its size, and doesn’t automatically decay to a pointer.
* Some people additionally want to be able to copy this class and make it a member of other classes.
* Implementation attempts have essentially demonstrated that this latter thing is impossible.

Given this state of affairs, the features currently in the Arrays TS are not going to be accepted in their current form; EWG recommended stripping the TS of its current contents, and waiting for a workable proposal to come along.

A promising direction for such a workable proposal is to have a “magic type” that acts like an ARB but knows its size and does not decay to a pointer (the implementable features that people wanted from a class wrapper). The type in question could only used for a local variable, and the underlying ARB itself wouldn’t be exposed. Several people expressed an interest in collaborating on a proposal in this direction.
1
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
06.02.2019, 23:49
Цитата Сообщение от Azazel-San Посмотреть сообщение
Там же вроде просто указатель стека смещают не на константу, а на переменную?
1) Есть такая штука как "соглашение о вызове". Популярные в данный момент соглашения говорят что сместил указатель стека - изволь после return вернуть как было. А если нарушать соглашения, то программа и грохнуться может, так как никто такой подлянки не ожидал.
2) return раскрывается в ассемблерный ret, а ret ищет адрес возврата из функции строго в макушке стека. Если указатель стека куда-то сместили, то и ret улетит куда-то не туда.

Конкретно же alloca раскрывается в builtin версию, которая таки гвоздями прибита к конкретному компилятору.
Цитата Сообщение от Azazel-San Посмотреть сообщение
По ссылке выше, господа видят больше проблем.
По факту gcc уже поддерживает VLA в C++ коде в качестве расширения языка. И никаких проблем почему-то не наблюдается.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2019, 23:49

Разница между for in / for of
подскажите пожалуйста, почему последний цикл не вывел "hello"? let arr = ; arr.foo = "hello"; for (let i in arr) { ...

Разница между 0 и 00 ?
Как заставить программу различать 0 и 00 (ноль и два ноля, как в рулетке)? Вариант с заменой 00 на какое-то число не подходит, так как...

Разница между 64 и 32
Здравствуйте, уважаемые эксперты, недавно на ноутбуке умер жесткий диск, в сервсисе его сменили, и поставили виндоус 7 хоум премиум....

Разница между != и <=
Здравствуйте! Писал программу с использованием QuickSort и заинтересовала такая вещь: void quickSort(int arr, int left, int right) { ...

Разница между С и С++
Если не брать во внимание объекты и классы, то разница состоит только лишь в cin, cout и директивах?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru