Объявление указателя функции c ++ вызывает сбой программы при выходе - PullRequest
1 голос
/ 04 июля 2010

Я объявляю следующие два указателя на функции в моем классе:

void (*ptrFunc)(void *);
bool (*ptrValid)(char *);

Теперь по какой-то причине второй указатель (ptrValid) вызывает сбой программы при выходе. Когда я закомментирую декларацию, программа завершается нормально, но когда я ее комментирую, происходит сбой.

Ему ничего не присваивается, он не вызывается, просто объявляется.

Я что-то здесь упускаю?

1 Ответ

6 голосов
/ 04 июля 2010

То, что вы описываете, не имеет смысла, что одно только объявление вызовет сбой вашей программы.Но это все равно может быть правдой, если добавление переменной в некоторый класс приводит к тому, что использование памяти программой будет отличаться таким образом, что вызывает сбой, если в какой-то другой, возможно, не связанной, точке доступа к недопустимому адресу памяти или вызывает памятьпереполнение и т. д. Возможно, это просто разоблачение проблемы, с которой вы все время сталкивались.

Попробуйте использовать профили памяти, такие как Valgrind или DUMA , чтобы понять, что происходитваша память.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...