2010-10-18 4 views
0

Это сообщение редактируется, и исходное сообщение здесь задает вопрос о реализации _malloc_r, который не является хорошим вариантом для использования.Альтернативная реализация malloc

Мой вопрос сейчас есть ли другая реализация malloc или альтернативная функция для malloc и бесплатных функций?

Прошу совета.

Большое спасибо.

+0

Возможно, вам нужно просто выделить некоторую память * заранее *, прежде чем вводить какие-либо обработчики сигналов? –

ответ

2

Откажитесь от попыток получить реенцант malloc. Это плохая идея. Если вам действительно нужно выделить память из обработчиков сигналов, используйте mmap, но даже это плохой дизайн.

+0

Только один, есть ли другая реализация malloc? или альтернативной функции для malloc и бесплатных функций? – domlao

+0

Замена 'malloc' (или любой другой части библиотеки C) приводит к * неопределенному поведению *. В любой конкретной реализации (например, Linux/glibc), вероятно, есть способ сделать это, но гарантируя, что замена не является ошибкой и что она не сломает другие части стандартной библиотеки или других библиотек, которые вы, возможно, захотите использовать, очень нетривиальна, и, конечно, даже если вы знаете, что это работает сейчас, это не гарантирует, что в будущих версиях ничего не сломается. –

2

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

Смежные вопросы