Ну хорошо, сделай так:
PHP код:
main()
{
new dest[4070];
PlayerName();
print(dest);
}
stock PlayerName()
{
new pname[MAX_PLAYER_NAME];
pname = "Azaza";
return PlayerName;
}
И посмотри на количество занятого стэка (если не установлен режим отладки, то перед этим зайди в папку с pawno и создай там файл "pawn.cfg", в котором пропиши "-d3" и после уже компилируй).
А после
PHP код:
return PlayerName;
замени на
И опять посмотри.
С возвратом единицы в стэке будет занято 4105 ячейки (4105*4 = 16420 байт), а с возвратом массива уже будет занято 4130 (4130*4 = 16520 байт).
То есть, если ты возвращаешь массив, он в стэке занимает в 2 раза больше места (сначала в стоке создаётся, а после в функции, где вызывается сток, резервируется столько же памяти, дабы вернувшийся результат было где хранить).
Если ты будешь это всё делать в new.pwn, где у тебя будет лишь один массив на 100 ячеек и сток с массивом в 50 ячеек, которые ты будешь возвращать, проблем, естественно, не будет. Но если у тебя будет целый мод, в котором создано уже с десяток массивов в одном лишь OnGameModeInit, а ты там ещё и десяток возвратов сделаешь... Сам понимаешь, стэк очень быстро кончится
- - - Добавлено - - -
И да. Не говори гоп, пока не перепрыгнешь. Нужды бывают разные и если ты с таким ещё не столкнулся - не значит, что такого не может быть