Acб estб bastante bien explicado, pero en ingles (vayan a la parte que dice Stack usage):
https://sampforum.blast.hk/showthread.php?tid=55261
Cuando un script en PAWN se ejecuta, se reserva una cierta cantidad de memoria utilizada solamente para guardar datos temporales cada vez que se llama a una funciуn, llamado stack (por defecto, es 16384 bytes).
El mбs tнpico caso en el que esta cantidad de memoria se excede, es cuando se usan arrays muy grandes, dentro de una misma funciуn, o cuando ocurre esto y ademбs se llaman las funciones recursivamente (es decir, que se hacen llamadas a la misma funciуn desde dentro de ellas).
Para tener como referencia, cada 'cell' (cada espacio de una array, o cada variable individual) se toma un espacio de 4 bytes. Una array de 256 espacios, por ejemplo, consume 1024 bytes. Para exceder el tamaсo del stack, se deberнan usar alrededor de 16 arrays de 256 celdas; ya sea dentro de una misma funciуn, o dentro de varias funciones que se llaman entre sн.
El espacio usado dentro del stack se va acumulando progresivamente cada vez que se llama a una funciуn, y se va liberando cada vez que una funciуn termina. Por eso, volviendo al ejemplo anterior, si bien es dificil encontrar 16 arrays de 256 celdas dentro de una funciуn, es probable que haya muchas de estas en varias funciones que se llaman entre sн, y se termine acumulando esta cantidad de espacio en total.
Si el tamaсo del stack se excede, la informaciуn extra que se debe escribir sobreescribe a la vieja. En la mayorнa de los casos va a provocar que el server crashee. En caso de que no lo haga, se van a sobreescribir los datos (por ejemplo, cuales eran los contenidos de la array de otra funciуn), o hasta se podrнan sobreescribir datos que digan quй funciуn llamу a cual, haciendo que el script vuelva a un punto indeterminado cuando termine una funciуn (aunque es medio raro que pase esto, deberнa ser muy especнfico, hasta forzado creo yo).
La soluciуn a esto, y la mбs recomendada, es intentar buscar por quй ocurre el exceso de memoria, y solucionarlo (en la mayorнa de los casos, esto es reemplazar los 256 por nъmeros mбs chicos).
En caso de que no se pueda, o no se sepa como, o algъn otro inconveniente, se puede recurrir a incrementar el tamaсo asignado por PAWN para el stack (el tan famoso #pragma dynamic). La contra de esto es que va a consumir algo mбs de memoria RAM, pero estamos hablando de un par de kilobytes, una cantidad casi irrelevante para servidores con un par de gigabytes de RAM. Sin embargo, la primera opciуn es recomendada no solo por la RAM salvada, sino tambiйn por el procesamiento salvado en la mayorнa de los casos donde se opera con la array completa, lo cual puede tener un GRAN impacto en la CPU si se usan arrays mбs grandes de lo debido.
En cualquiera de los casos,
siempre es preferible recurrir a #pragma dynamic que dejar el script como estб.