PHP код:
new SElectItem[][] = {
{1796, 1794, 2090, 1795, 2302, 2299, 1797, 1798, 1799, 1802, 1801, 1803, 1701, 1745, 2566, 2575},
{2118, 2030, 2032, 2311, 2110, 2119, 2126, 1822, 2029, 2115, 1814, 2109, 1818, 2031, 1817, 1821, 2234, 2235, 2111, 2112, 1823, 1737, 2117},
{0,0} // Нужна для правильной генерации
};
stock GetDynArraySize(array[][], idx, size = sizeof array)
{
assert (size > 2);
new
offset_next,
offset_last;
++idx;
assert (idx < size);
idx <<= 2;
#emit load.s.pri array
#emit load.s.alt idx
#emit add
#emit stor.s.pri offset_next
#emit lref.s.pri offset_next
#emit stor.s.pri offset_next
idx -= 4;
#emit load.s.pri array
#emit load.s.alt idx
#emit add
#emit stor.s.pri offset_last
#emit lref.s.pri offset_last
#emit stor.s.pri offset_last
return ((offset_next - offset_last) / 4) + 1;
}
main()
{
SElectItem[0][1] = 1;
new ret = GetDynArraySize(SElectItem, 1);
printf("%d", ret);
}