Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/134: Рейтинг темы: голосов - 134, средняя оценка - 4.62
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4

Общие вопросы и приёмы эффективного программирования на BASIC

27.03.2021, 15:34. Показов 32480. Ответов 391
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот как создать кнопку:
PureBasic
1
2
3
4
5
6
7
8
9
10
Dim hwndButton As HWND = CreateWindow( _
    WC_BUTTON,
    "Текст кнопки", _
    WS_CHILD Or BS_BITMAP Or BS_PUSHBUTTON Or WS_CLIPSIBLINGS, _
    10, 10, 100, 50, _
    hwndMainForm, _
    Cast(HMENU, 1000), _
    hInst, _
    NULL _
)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2021, 15:34
Ответы с готовыми решениями:

Общие вопросы по языку 1с Visual Basic
Всем привет, много информации нашел, но путевого очень мало, подскажите, пожалуйста, где можно побольше прочитать о достоинстве этого...

Приемы взаимодействия Visual Basic и SQL
При создании приложений, оперирующих базами данных, нередко возникают проблемы, связанные с организацией взаимодействия языка...

Основные понятия и приемы программирования
Помогите ответить на вопросы по С#. 1)Создание объектов.Понятия ссылки. 2)Массивы:одномерные,многомерные,непрерывные,массивы объектов. ...

391
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.04.2021, 16:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Замабувараев Посмотреть сообщение
Вот видите, строка пересоздаётся, а не динамически расширяется.
Вы просто не умеете это делать. Если нужна конкатенация строк, то есть CopyMemoryString:
PureBasic
1
2
3
4
5
*Buffer = AllocateMemory(1000)
*Pointer = *Buffer
  CopyMemoryString("Hello", @*Pointer)
  CopyMemoryString(" World!")  ; Эта строка встанет сразу после "Hello"
 Debug PeekS(*Buffer)         ; Ответ "Hello World!"
И не надо ни каких велосипедов если вам нужны указатели на строки. Но в 99% программисты на Basic ни какие указатели не юзают, работать со строками очень комфортно и полностью безопасно.

Добавлено через 5 минут
Цитата Сообщение от The trick Посмотреть сообщение
Не враньё:
Ещё раз повторяю, Враньё!
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
s.s = ""
Debug @s
Debug s
s.s = "Hello World"
Debug @s
Debug s
s.s = ""
Debug @s
Debug s
s.s = "Hello"
Debug @s
Debug s
Тут 4 раза меняется значение s разной длины, и ВСЕГДА будет один и тот же указатель.
Цитата Сообщение от The trick Посмотреть сообщение
о что отладчик показывает одну и ту же память - ничего не значит, просто хип возвращает тот же самый блок.
Ну и мне то как программисту что от этого? Или может PRINT выдаст другую строку или ещё какая напасть
Ваши надуманные проблемы - это ВАШИ проблемы и не более того. Абсолютно безопасный и валидный код.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 16:35  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Враньё!
В этом случае одна и та же строка.
Вот доказательства.

Memory Viewer неудобная:
Всегда поверх всех окон, бесит (относится и к окну Debug тоже). Нельзя было сделать отдельной панелью, что ли.
Нельзя щёлкнуть ПКМ на переменной и выбрать «Показать память по адресу», нужно вручную вводить диапазон памяти.
Все эти окна закрываются когда отладка заканчивается, почему нельзя их оставить?

Память на пятой строке, видно расположение данных двух строк:
Code
1
2
3
4
5
6
7
8
9
10
11
12
00000000022B0880  48 00 65 00 6C 00 6C 00 6F 00 20 00 57 00 6F 00  H.e.l.l.o. .W.o.
00000000022B0890  72 00 6C 00 64 00 21 00 00 00 00 00 00 00 00 00  r.l.d.!.........
00000000022B08A0  00 00 00 00 00 00 00 00 23 08 38 64 0B 40 00 0C  ........#.8d.@..
00000000022B08B0  54 00 68 00 65 00 72 00 65 00 49 00 73 00 53 00  T.h.e.r.e.I.s.S.
00000000022B08C0  74 00 72 00 69 00 6E 00 67 00 00 00 00 00 00 00  t.r.i.n.g.......
00000000022B08D0  00 00 00 00 00 00 00 00 4F 09 39 08 0B 40 00 00  ........O.9..@..
00000000022B08E0  50 01 2B 02 00 00 00 00 50 01 2B 02 00 00 00 00  P.+.....P.+.....
00000000022B08F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0900  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0910  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0920  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0930  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
После седьмой строки пустая строка записалась на место символа H:
Code
1
2
3
4
5
6
7
8
9
10
11
12
00000000022B0880  00 00 65 00 6C 00 6C 00 6F 00 20 00 57 00 6F 00  ..e.l.l.o. .W.o.
00000000022B0890  72 00 6C 00 64 00 21 00 00 00 00 00 00 00 00 00  r.l.d.!.........
00000000022B08A0  00 00 00 00 00 00 00 00 23 08 38 64 0B 40 00 0C  ........#.8d.@..
00000000022B08B0  54 00 68 00 65 00 72 00 65 00 49 00 73 00 53 00  T.h.e.r.e.I.s.S.
00000000022B08C0  74 00 72 00 69 00 6E 00 67 00 00 00 00 00 00 00  t.r.i.n.g.......
00000000022B08D0  00 00 00 00 00 00 00 00 4F 09 39 08 0B 40 00 00  ........O.9..@..
00000000022B08E0  50 01 2B 02 00 00 00 00 50 01 2B 02 00 00 00 00  P.+.....P.+.....
00000000022B08F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0900  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0910  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0920  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0930  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
После 16 строки, видно, что «Hello World!» записалась в другое место:
Code
1
2
3
4
5
6
7
8
9
10
11
12
00000000022B0880  10 09 2B 02 00 00 00 00 50 01 2B 02 00 00 00 00  ..+.....P.+.....
00000000022B0890  72 00 6C 00 64 00 21 00 00 00 00 00 00 00 00 00  r.l.d.!.........
00000000022B08A0  00 00 00 00 00 00 00 00 23 08 38 64 0B 40 00 0C  ........#.8d.@..
00000000022B08B0  54 00 68 00 65 00 72 00 65 00 49 00 73 00 53 00  T.h.e.r.e.I.s.S.
00000000022B08C0  74 00 72 00 69 00 6E 00 67 00 00 00 00 00 00 00  t.r.i.n.g.......
00000000022B08D0  00 00 00 00 00 00 00 00 23 08 38 64 0B 40 00 0E  ........#.8d.@..
00000000022B08E0  48 00 65 00 6C 00 6C 00 6F 00 20 00 57 00 6F 00  H.e.l.l.o. .W.o.
00000000022B08F0  72 00 6C 00 64 00 21 00 00 00 00 00 00 00 00 00  r.l.d.!.........
00000000022B0900  00 00 00 00 00 00 00 00 4C 09 39 0B 0B 40 00 00  ........L.9..@..
00000000022B0910  50 01 2B 02 00 00 00 00 80 08 2B 02 00 00 00 00  P.+.....€.+.....
00000000022B0920  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00000000022B0930  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Отладочное окно:
Code
1
2
Это та же самая строка
Это уже другая строка!
Миниатюры
Общие вопросы и приёмы эффективного программирования на BASIC  
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2021, 16:37
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Вы просто не умеете это делать. Если нужна конкатенация строк, то есть CopyMemoryString:
Pro_grammer, ну вообще-то тут дискуссия идет по поводу выгоды от выделения памяти в стеке. Тот код что ты предложил с таким же успехом можно и для копирования в стек использовать. Ты это осознаешь?
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 16:43  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ещё раз повторяю, Враньё!
Сделайте так:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Procedure TestValueString2()
  s.s = ""
  s2.s = "59585858589485lkdlfmvldkfmvldkfmv"
  Debug @s
  Debug s
  s.s = "Hello World"
  Debug @s
  Debug s
  s.s = ""
  Debug @s
  Debug s
  s.s = "Hello"
  Debug @s
  Debug s
EndProcedure
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2021, 16:45
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ещё раз повторяю, Враньё!
Ну что за детский сад. Не веришь - твое дело. Я открыл код в 64 битном компиляторе и получил такой результат. Пребывай и дальше в заблуждении.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну и мне то как программисту что от этого?
Ну тебе-то может быть ничего, другим, кто понимает о чем речь идет в этой дискуссии, это показатель. У Замабувараева код просто записывает нуль терминал, а у тебя происходит то что я написал. Это показатель того о чем мы тут дискутируем. Опять-таки можешь не соглашаться и упираться - вещи от этого другими не станут.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ваши надуманные проблемы - это ВАШИ проблемы и не более того. Абсолютно безопасный и валидный код.
Ну а кто говорит что он небезопасный и невалидный? Тут речь идет о выгоде использования памяти в стеке, а ты о чем тут пишешь? Почитай тему.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 16:48  [ТС]
А и ещё в PureBasic при наборе текста выскакивает подсказка с ключевыми словами, но при нажатии на Enter он не вставляет это слово, а переводит на новую строку. Самая удобная IDE в мире!
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.04.2021, 16:49
Цитата Сообщение от Замабувараев Посмотреть сообщение
Сделайте так:
Стесняюсь спросить, для чего?
Цитата Сообщение от The trick Посмотреть сообщение
по поводу выгоды от выделения памяти в стеке.
Ну и какая выгода?
Три страницы кода Замабувараева выгоднее чем обычное присвоение строки переменной?
Не смешите мои тапки
1
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2021, 16:55
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну и какая выгода?
Мне лень в сотый раз писать об этом. Почитай дискуссию еще раз.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 17:06  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Стесняюсь спросить, для чего?
Тогда он не сможет «расширить» строку, потому что там занято, и вынужден будет создать новую.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Три страницы кода Замабувараева
Выгоднее. Посмотреть на размер исполняемого файла, он удивит вас своей лаконичностью.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.04.2021, 18:35
Цитата Сообщение от The trick Посмотреть сообщение
Мне лень в сотый раз писать об этом. Почитай дискуссию еще раз.
Ох уж эта загадочность посвящённых Смех да и только.
Вся суть вот тут:
Цитата Сообщение от Замабувараев Посмотреть сообщение
Тогда он не сможет «расширить» строку, потому что там занято, и вынужден будет создать новую.
Ну и что? Если новую, что и любому понятно, когда выделенной памяти не хватает, и кусок занят, то надо искать новый кусок памяти, куда строка влезет, не станет же компилятор ради этой строки затирать другие строки. Это нормальное поведение.
Есть приём выделения сразу максимально нужной памяти под строку, дарю бесплатно:
s.s = Space(1000)
И ваш пример чудесным образом начинает работать правильно:

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
s.s = Space(1000)
 s2.s = "59585858589485lkdlfmvldkfmvldkfmv"
  Debug @s
  Debug s
  s.s = "Hello World"
  Debug @s
  Debug s
  s.s = ""
  Debug @s
  Debug s
  s.s = "Hello"
  Debug @s
  Debug s
Цитата Сообщение от Замабувараев Посмотреть сообщение
Посмотреть на размер исполняемого файла
Кому это надо?
А реальная польза какая? Пока вижу только вред, первое это то, что чем больше кода, тем больше ошибок.
И второе, все прямые действия с памятью не безопасны, и некоторые ошибки могут вылезти позже в ходе работы приложения.
1
Эксперт по электронике
6823 / 3248 / 337
Регистрация: 28.10.2011
Сообщений: 12,693
Записей в блоге: 7
09.04.2021, 19:21
Цитата Сообщение от Замабувараев Посмотреть сообщение
Но стоит копнуть глубже, и уже оказывается, что строки не настолько динамические
Почему?
Знаете чем статические массивы и строки отличаются от статических? Первые могут менять размер, а у вторых фиксированный размер? Строка в вашем коде меняет свой размер? Меняет! Тогда почему считаете ее не динамической?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Вот видите, строка пересоздаётся, а не динамически расширяется.
Строка динамическая, а то что указатель на ее изменяется это нормально.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Проблема в том, что взятие указателя вроде бы на одну и ту же переменную даёт разные результаты.
Пока не меняется содержимое строки, указатель тот же. Если изменилось, ничего не мешает его снова получить.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Пока вы будете выходить из блокировки, цена в биржевом стакане изменится, все несут убытки.
То есть цена на бирже меняется каждые 0.000000001 секунд?
Знаете что пинг у сети и реакция человека намного больше этого значения?

Цитата Сообщение от The trick Посмотреть сообщение
Не враньё
Таки вранье!
0
Эксперт по электронике
6823 / 3248 / 337
Регистрация: 28.10.2011
Сообщений: 12,693
Записей в блоге: 7
09.04.2021, 19:27
Цитата Сообщение от Замабувараев Посмотреть сообщение
А и ещё в PureBasic при наборе текста выскакивает подсказка с ключевыми словами, но при нажатии на Enter он не вставляет это слово, а переводит на новую строку.
Файл -> Настройки -> Горячие клавиши -> Вставить выбранное слово из окна Авто-завершения.
Выбираете там Enter.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 19:52  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну и что? Если новую, что и любому понятно, когда выделенной памяти не хватает, и кусок занят, то надо искать новый кусок памяти, куда строка влезет
Но тогда по терминологии locm строка перестаёт быть динамической! Это будет пересоздаваемая строка.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
s.s = Space(1000)
Оно тысячу раз скопирует туда пробел, который потом всё равно перезапишут, — неэффективно.
Выгоднее завести буфер, установить в нём первый символ нулевым, и не тратить время на заполнение оставшихся 999 символов.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
И ваш пример чудесным образом начинает работать правильно:
Плохо, когда работает правильно или неправильно в зависимости от контекста.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Кому это надо?
Мой принцип прост: «Не платить за то, что не используется». Мне надо, чтобы в исполняемом файле не было мёртвого кода, от которого екзешник переходит в категорию BloatWare.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
И второе, все прямые действия с памятью не безопасны, и некоторые ошибки могут вылезти позже в ходе работы приложения.
Уже изобретены RAII, владеющие объекты, мудрые указатели.

Добавлено через 3 минуты
Цитата Сообщение от locm Посмотреть сообщение
Если изменилось
И как узнать изменилось ли? Это каждый раз проверять надо?
0
Эксперт по электронике
6823 / 3248 / 337
Регистрация: 28.10.2011
Сообщений: 12,693
Записей в блоге: 7
09.04.2021, 19:55
Цитата Сообщение от Замабувараев Посмотреть сообщение
Но тогда по терминологии locm строка перестаёт быть динамической!
Не приписывайте мне свои домыслы!
В сети есть определение динамического массива https://ru.wikipedia.org/wiki/Динамический_массив
У строки похожее определение.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 20:18  [ТС]
А когда после присваивания строка не изменила размер, а стала указывать на другую область памяти — это тоже динамическая строка?
Если так, то почему строка на стэке, которая будет указывать на другую область памяти из стэка — не динамическая?

Добавлено через 11 минут
Цитата Сообщение от locm Посмотреть сообщение
Знаете что пинг у сети и реакция человека намного больше этого значения?
Так вы же не реакцию человека проверяете. Вы пишете автоматическую программу, который должна действовать чем быстрее тем лучше.
Если ваш бот реагирует за 0.01 секунд, а чей‐то другой за 0.001 секунд, то понятно, что чужой бот быстрее купит бумагу по выгодному курсу, а вы проигрываете.
Следовательно, вам все эти задержки необходимо убирать вовсе.
Пинг сети уменьшают переходом на оптику, уменьшением физического расстояния между сервером бота и сервером биржи, протягиванием этой оптики прямо от серверов бота до серверов биржи.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2021, 20:35
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ох уж эта загадочность посвящённых Смех да и только.
Ну да, для того кому лень читать тему, для того конечно это загадочно

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну и что? Если новую, что и любому понятно, когда выделенной памяти не хватает, и кусок занят, то надо искать новый кусок памяти, куда строка влезет, не станет же компилятор ради этой строки затирать другие строки. Это нормальное поведение.
Pro_grammer, ты понимаешь что ты не в тему пишешь? Во-вторых, не нужно свои заблуждения тут выдавать за истину - твой пример ничего не показывает, а выводы которые ты сделал - ошибочны. Я дам тебе возможность, чтобы ты сам осознал это.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
А реальная польза какая?
Реальную пользу уже выше написали, только кому-то видимо лень читать тему сначала.

Цитата Сообщение от locm Посмотреть сообщение
Таки вранье!
Вот еще один неверующий. locm, я то думал что ты разбираешься с тем как работает динамическая память, но увы. Я привел уже выше пример или ты думаешь я его фотошопил что-ли? Самому не смешно? Мне что делать что-ли нечего?
Вот, для неверующих специально видео даже записал:
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.04.2021, 20:43  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Вот еще один неверующий.
Видимо, у них стоит x86, а там Capacity строки может быть побольше.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2021, 22:03
Цитата Сообщение от Замабувараев Посмотреть сообщение
Видимо, у них стоит x86, а там Capacity строки может быть побольше.
Да это неважно, просто это синтетический пример и такое поведение только частный случай. Когда строк будет несколько, или если менеджер хипа поменяется там все гораздо печальнее будет.

По факту код получился такой:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
void __noreturn start()
{
  memset(&hHeap, 0, 0x30ui64);
  qword_1400051E0 = (__int64)GetModuleHandleW(0i64);
  hHeap = HeapCreate(0, 0x1000ui64, 0i64);
  sub_140002030();
  StrAlloc(&g_pszString, L"Hello World");
  g_pszString2 = g_pszString;
  StrAlloc(&g_pszString, L"Hello");
  g_pszString2 = g_pszString;
  StrAlloc(&g_pszString, &pszNullStr);
  g_pszString2 = g_pszString;
  sub_1400010D8();
  sub_140002090();
  HeapDestroy(hHeap);
  ExitProcess(uExitCode);
}
 
size_t __fastcall StrAlloc(LPWSTR *ppStr, LPCWSTR psz)
{
  WCHAR *pszNewStr; // rax
  size_t szLen; // [rsp+20h] [rbp-18h]
  LPCWSTR Str; // [rsp+48h] [rbp+10h]
 
  Str = psz;
  szLen = 0i64;
  if ( psz )
  {
    szLen = wcslen(psz);
    if ( *ppStr )
      pszNewStr = (WCHAR *)HeapReAlloc(g_hHeap, 0, *ppStr, 2 * szLen + 10);
    else
      pszNewStr = (WCHAR *)HeapAlloc(g_hHeap, 0, 2 * szLen + 10);
    *ppStr = pszNewStr;
    StrCpy(*ppStr, Str, szLen);
  }
  else if ( *ppStr )
  {
    HeapFree(g_hHeap, 0, *ppStr);
    *ppStr = NULL;
  }
  return 2 * szLen + 2;
}
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.04.2021, 22:23
Цитата Сообщение от The trick Посмотреть сообщение
твой пример ничего не показывает
Мой пример показывает то, что надо показать - указатель на строку не меняется, если изначально достаточно выделено памяти. А раз я могу изменить строку как угодно, то это динамическая строка. За это и разговор. О чем ты там себе придумал, и что там было вначале темы - это меня не волнует от слова вообще. Я лично только за это.

Цитата Сообщение от The trick Посмотреть сообщение
там все гораздо печальнее будет.
Да что будет печальнее то?
Ну изменится указатель на строку, и что, в чем печаль? Что от этого строка перестала быть динамической и я не смогу изменить её размер? Ещё раз, не смешите мои тапки.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
09.04.2021, 22:32
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Мой пример показывает то, что надо показать - указатель на строку не меняется, если изначально достаточно выделено памяти.
Нет. Твой пример это не показывает, ты заблуждаешься. Посмотри во что по факту скомпилировался код.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну изменится указатель на строку, и что, в чем печаль?
Ну изменится, а ты утверждал что нет. Вот в этом и вся соль. Ну смешно же, сначала писал что мы врем, городим чушь, что указатель не меняется, а теперь когда ему показали что это его заблуждение пишет - "Ну изменится указатель на строку, и что, в чем печаль". Как это расценивать? Это ты городишь чушь тут.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Что от этого строка перестала быть динамической и я не смогу изменить её размер? Ещё раз, не смешите мои тапки.
Ты вообще споришь о чем-то своем и от этого тебе смешно видимо. Посмотри что ты цитируешь и на что отвечаешь, а то ты последнее время жжешь тут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2021, 22:32
Помогаю со студенческими работами здесь

Стоит ли изучать как устроена ЭВМ для эффективного программирования
Всем дробового времени суток (пятница!!!) Стоит ли изучать как устроен ЭВМ для эффективного программирования на плюсах ?

Подскажите ссылки на приемы программирования для Embedded
Народ! Подскажите пожалуйста ссылки, на приемы и упражнения по программированию, с разьяснениями по встраеваемому ПО. Заранее благодарю!

Нужны сайты про C#, приемы, рецепты, трюки программирования
Не советуйте msdn или книгу. Справочник должен быть похож на другие стандартные справочники как у delphi, которых полно в инете, а к C#...

Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике
интересны приемы программирования на C# те о которых не пишут в книгах, которые узнаются на практике. какие OpenSource проекты можете...

Общие вопросы.
Доброго времени суток! После изучения Паскаля, решил перейти на изучение С/С++, прочитал много мануалов для новичков, но накопились...


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

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru