我正在编写一个 C 扩展,它应该在模块初始化时分配一个全局数组(该数组不会改变并且与每个请求相关)。我已经阅读了有关 php c 扩展内存管理的信息,但大多数来源都没有提到在堆栈上声明变量。
这仍然是一种有效的方法,还是更有可能泄漏在这种情况下我应该更喜欢 pemalloc 等......?
一些示例代码来说明问题:
在我的标题中:
ZEND_BEGIN_MODULE_GLOBALS(myExtension)
long long myArray[ARRAY_SIZE];
ZEND_END_MODULE_GLOBALS(myExtension)
在实施中:
PHP_MINIT_FUNCTION(myExtension) {
fillUpMyArray();
return SUCCESS;
}
谢谢,
亚历克斯