swf_startdoaction(PHP 4) swf_startdoaction - начинает описание списка акций текущего кадра. Описаниеvoid swf_startdoaction (void) swf_startdoaction() начинает описание списка акций текущего кадра. Обязана вызываться до акций, определённых для данного кадра. |
||||||||||
|
||||||||||
Любая необходимая функции память должна быть выделена с помощью emalloc() или estrdup(). Это абстрактные функции работы с памятью, которые выглядят и работают как нормальные функции malloc() и strdup(). Память должна освобождаться с помощью efree().
В программе имеются два вида памяти: память, которая возвращается разборщику в переменной, и память, которая нужна вам для временного хранения в вашей внутренней функции. Если вы присваиваете строку переменной, возвращаемой разборщику, вы должны сначала выделить память с помощью emalloc() или estrdup(). Эта память НИКОГДА НЕ ДОЛЖНА освобождаться вами, если только вы позднее не переписываете в этой же функции первоначальное присвоение (хотя этот стиль программирования нельзя приветствовать).
Для любого временного/постоянного выделения памяти, необходимой вам в функции/библиотеке, вы должны использовать три функции: emalloc(), estrdup() и efree(). Они ведут себя ТОЧНО ТАК ЖЕ, как и их функции-двойники. Всё что вы emalloc() или estrdup(), вы должны efree() в той или иной точке, если это не предполагается делать в конце программы; иначе это приведёт к утечке памяти. Фраза "Они ведут себя ТОЧНО ТАК ЖЕ, как и их функции-двойники" означает: если вы efree() то, что не было emalloc()'овано или estrdup()'овано, вы можете получить нарушение сегментации. Поэтому, пожалуйста, будьте бдительны и освобождайте всю выделенную память.
Если вы компилируете с опцией "-DDEBUG", PHP будет выводить весь листинг памяти, выделенной с помощью emalloc() и estrdup(), но не освобождённой с помощью efree(), при запуске специфицированного скрипта.
| |