【发布时间】:2011-09-15 04:16:14
【问题描述】:
当试图定义这样的数组时:
$array = new SPLFixedArray(256);
for ($i = 0; $i < 256; $i++) {
$array[$i] = new SPLFixedArray(256);
for ($j = 0; $j < 256; $j++) {
$array[$i][$j] = new SPLFixedArray(5);
for ($k = 0; $k < 5; $k++) {
$array[$i][$j][$k] = 0;
}
}
}
我只在 CLI 中得到“分段错误”。我在 C/C++ 中的 SO 上阅读了此类错误,这可能是内存问题,并建议使用 malloc() 将所有内容加载到堆内存中。 PHP中有这样的工具吗?
即使在小型 3d 数组中也会发生这种情况,例如 15 而不是 256(但在 15 下有效)。
谢谢!
【问题讨论】:
-
php 版本最好在此类问题中指定。
-
没有这样的工具 within PHP 用户空间。请在备份时通过bugs.php.net 报告此问题。它不会作为 SO 问题得到回答。
-
它似乎已在 PHP 5.3.7-dev 中修复。
标签: php arrays segmentation-fault