|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Что то не выходит, валится приложение. И std::string пробовал и char, char *, char[]))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:06 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Если ничего не помогает, вызывайте так, как описано в заголовке/документации. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:08 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Указатель как объявлен? Если это экспортируемая из DLL функция, то как-то так Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:29 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dima T, Спасибо. Оказалось банальность в высшей степени. Не успел присваивать в класс поле адрес функции. В результате там null или мусор.... И главное отладчик пишет SIGSEGV от операционки. Ну я и не догадался что там пусто. .... Работает простой std::string. Везде его стараюсь. ... Счас попробую на if nulll проверки добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:35 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Возможно студия показывает более вменяемое сообщение на данный юзкейс чем Qt Creator. Imho ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:42 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC SharpИ главное отладчик пишет SIGSEGV от операционки. Так собирать надо с отладочной информацией. Тогда он и место покажет, и call stack. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 14:58 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Думаю тут автоматом это режим. Как и в студии. Кнопа - отладка. Бряк на вызове функции возле main() из класс поставил. При входе в метод падение. Я заметил что в плюсах надо руками инициализировать поля указатели. If (p) не работает из коробки. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:20 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Адрес при ошибке (мусор) - 0х56 Адрес после pointerMy = nullptr; 0x0 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:27 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Я заметил что в плюсах надо руками инициализировать поля указатели. If (p) не работает из коробки. Любые указатели надо инициализировать нулем или конкретным значением. Это не C# где автоматом нули по умолчанию. В С/С++ просто выделяется память под хранение указателя, а значением становится тот мусор, который остался с прошлого использования этой памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:29 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dima TЛюбые указатели надо инициализировать нулем или конкретным значением. Я даже больше скажу: переменные любого типа надо инициализировать. Причём компилятор имеет привычку предупреждать об использовании неинициализированных переменных, но кто ж эти "многа букафф" читает?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:33 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dima T PetroNotC Sharp Я заметил что в плюсах надо руками инициализировать поля указатели. If (p) не работает из коробки. Любые указатели надо инициализировать нулем или конкретным значением. Это не C# где автоматом нули по умолчанию. В С/С++ просто выделяется память под хранение указателя, а значением становится тот мусор, который остался с прошлого использования этой памяти. Да. Добавил Код: plaintext 1. 2.
А жаль. Чем продиктовано что не как в шарпе? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:35 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC SharpЧем продиктовано что не как в шарпе? Шарп появился как "С++ для дебилов", а не наоборот. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:38 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov PetroNotC SharpЧем продиктовано что не как в шарпе? Шарп появился как "С++ для дебилов", а не наоборот.)))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:40 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Чем продиктовано что не как в шарпе? Производительностью. Запись нулей - не всегда нужная операция, но процессорное время на нее надо будет тратить всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:43 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dima T, Ну, время наверно сопоставимо с инициализацией всего класса? Я чисто про класс говорю. Тем кому время критично наверно без классов работают. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:48 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC SharpНу, время наверно сопоставимо с инициализацией всего класса? Ты не поверишь, но у классов тоже нет инициализации кроме явной в конструкторах. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:55 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Dima T, Ну, время наверно сопоставимо с инициализацией всего класса? Я чисто про класс говорю. Тем кому время критично наверно без классов работают. Инициализация объекта - это присвоение явно прописанных значений полям, запуск конструкторов полей и выполнение конструктора класса. Если ничего перечисленного нет, то на инициализацию класса не тратится ни одного процессорного такта. Вобщем если что-то явно не прописали - С/С++ считает это лишним. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:55 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dima T PetroNotC Sharp Чем продиктовано что не как в шарпе? Производительностью. Запись нулей - не всегда нужная операция, но процессорное время на нее надо будет тратить всегда. строго говоря да, "производительностью". Но у идеи такого поведения есть полезный побочный эффект, который в "других местах" может проявляться ленивым выделением памяти, например. смысл происходящего заключается в создании объекта в частично сформированном состоянии . Там где заполняют нулями принудительно, считают, что нам таких объектов не нать. Там, где не заполняют - считают, что это правомерное состояние, а полное состояние сформируется позднее. В этом смысле, чтение до записи, в языках сорта C, является обыкновенной ошибкой програмиста. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 15:56 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
booby, Вы намекаете на анализ сего факта что если там мусор значит объект еще не родиля и на 6м месяце? А как вы проверите что там мусор и объект не полностью готов? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 16:43 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp booby, Вы намекаете на анализ сего факта что если там мусор значит объект еще не родиля и на 6м месяце? А как вы проверите что там мусор и объект не полностью готов? хоть на 36-м. Зачем нужен объект, и когда должен оказаться полностью сформированным - дело его создателя . Проверять ничего не надо . За готовность объекта к использованию на момент его фактического использования, когда состояние должно оказаться полностью сформированным, никто, кроме создателя, ответственности не несет. Это просто - хочешь "значения по умолчанию" - просто присвой его, имени себя, как создателя, конкретное умолчание, путем совмещенния объявления подходящей по типу переменной с конструированием любимого, или потребного в конкретном месте, "умолчания". у тебя эта парадигма, в этом языке от зубов на кончиках пальцев, без включения мозга, на полном автомате должна работать. Как правильные движения лыжного гонщика, велосипедиста или пловца. Однажды усвоенные движения невозможно вытеснить. При наступлении усталости новый навык "устаёт", и просыпается первоначальный. Если ты на шарпах первый навык получал, и "немного устал сегодня", то пальцы твои автоматически начнут рассчитывать на дефолтные привоения. Просто надо отдохнуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 16:58 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
booby, А я думал что за полезный побочный эффект))))) Короче, не расслабляйся) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 17:09 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, а что думаешь, легко было осваивать коньковый ход в лыжах тем, кто всю жизнь бегал классикой... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 17:12 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
booby, Ну, инициализацию фигурными скобками же добавили) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 17:23 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp booby, Ну, инициализацию фигурными скобками же добавили) это же ничего не меняет по смыслу. ты как был бог, так им и остаёшься. Что напишешь в эти скобки, так мир и окажется устроен. В своих структурах/классах ты можешь рулить конструкторами по умолчанию, представляя себе разумное поведение, формируя его полностью, или сознательно оставляя часть структуры, а значит - сам объект, в неполностью сформированном состоянии. В последнем случае - ты либо кодом для "как проверять" это дело снабжаешь, или/и конструкторами, позволяющими получить полностью сформированный объект. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 17:42 |
|
Как правильно вызвать указатель на функцию с парам строкой?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Я даже больше скажу: переменные любого типа надо инициализировать. Причём компилятор имеет привычку предупреждать об использовании неинициализированных переменных, но кто ж эти "многа букафф" читает?.. в C++ же конструкторы этим занимаются, которых не было в C. И они же гарантируют, что не будет мусора. Классы в C++ сделаны для увеличения автоматизма и уменьшения ошибок. А вот так зачем в C++ писать непонятно: PetroNotC Sharp Код: plaintext 1. 2.
это же "naked pointer", который "НЕЛЬЗЯ" ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2020, 17:59 |
|
|
start [/forum/topic.php?fid=57&fpage=5&tid=2017312]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
24ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 137ms |
0 / 0 |