Страниц: [1] 2 3 ... 10
 1 
 : Мая 22, 2017, 09:16:20 pm 
Автор da-nie - Последний ответ от da-nie
Я-таки поборол неприязнь к яндекс-диску и потому выкладываю версию своего движка для QNX, работающую с использованием порталов.
Управление: курсор, alt-присесть, space-открыть двери/нажать переключатель, page up и page down - голову вверх/вниз.

Движок под QNX: https://yadi.sk/d/fSo8RKzf3JR3Y9
Редактор карт под Windows: https://yadi.sk/d/iR9EXPMt3JR3ea

Скриншот:


 2 
 : Мая 19, 2017, 03:33:35 pm 
Автор Дмитрий - Последний ответ от Дмитрий
Кстати, действительно, получается что
PtSetArg(&args[0], Pt_ARG_TEXT_STRING,"", 0);
PtSetResources(MTex1, 1, args);
стирает весь текст.

 3 
 : Мая 18, 2017, 09:48:23 pm 
Автор Дмитрий - Последний ответ от da-nie
Ну, если делать, как memset, то тут явно приведение писать не понадобится. Smiley

 4 
 : Мая 18, 2017, 09:33:22 pm 
Автор Дмитрий - Последний ответ от A_O
Ну это ж надо вставлять явное приведение. Так вредить неинтересно - возни больно много.

 5 
 : Мая 18, 2017, 09:29:50 pm 
Автор Дмитрий - Последний ответ от da-nie
Не-а. Во всех местах, где вы будете задавать указатель, как &buffer, вы его будете приводить к типу указателя на тип буфера (иначе работать не будет так же, как у меня в VC6 в примере). А это значит, что компилятор подмены не заметит.

 6 
 : Мая 18, 2017, 08:25:50 pm 
Автор Дмитрий - Последний ответ от A_O
Если поменять массивы на динамические, компилятор как раз наверняка возмутится.

 7 
 : Мая 18, 2017, 08:21:27 pm 
Автор Дмитрий - Последний ответ от da-nie
Вроде бы я об этом и пишу? Wink

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

 8 
 : Мая 18, 2017, 08:04:18 pm 
Автор Дмитрий - Последний ответ от A_O
В случае malloc есть явный объект - указатель. Со всеми вытекающими.
Если вы напишете
Код:
char *buffer = malloc (16);
то buffer никак не будет равно &buffer.
А в случае
Код:
char buffer[16];
такое равенство будет. Но не будет объекта типа "указатель".
По крайней мере, компилятор Watcom в QNX 4.25 спокойно кушает оператор
Код:
if (buffer == &buffer) ...
Он выдает только туманное предупреждение "&array may not produce intended result", но результат сравнения при этом true.
Интересно проверить, что будет при арифметических операциях с этим указателем. Но в данной теме это значения не имеет - использование &buffer2 вместо buffer2 в обращении к функции ошибкой никоим образом не является.

 9 
 : Мая 18, 2017, 07:44:30 pm 
Автор Дмитрий - Последний ответ от da-nie
В Си есть malloc. И ваш пример в Си++ тоже работает. А это уже хреново.

Цитировать
Имя массива есть ссылка на первый элемент, но не объект типа "указатель".

Судя по статье с хабра - массив он свой собственный мальчик, и имя его в указатель преобразуется, но им не является, как не является и ссылкой.

 10 
 : Мая 18, 2017, 07:39:58 pm 
Автор Дмитрий - Последний ответ от A_O
1. В Си нет new.
2. Имя массива есть ссылка на первый элемент, но не объект типа "указатель". Такой объект в данном случае не создается.

Страниц: [1] 2 3 ... 10