ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Emscripten 4.0, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Π½Π° C/C++ ΠΈ Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π° LLVM, Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WebAssembly. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ JavaScript ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡ, ΡΠ°Π±ΠΎΡΠ° Π² Node.js ΠΈΠ»ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ ΠΌΡΠ»ΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° wasm runtime. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ MIT Π»ΠΈΡΠ΅Π½Π·. Π ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° LLVM, Π° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° WebAssembly ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π΅ Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Binaryen.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° Emscripten Π΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Π² ΡΠ΅Π± Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½. Π ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π½Π° C ΠΈ C++ (libc, libcxx), ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° C++, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° pthreads, API POSIX ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ΄Π΅Π»Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ API Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Web API ΠΈ ΠΊΠΎΠ΄ Π½Π° JavaScript.
Emscripten ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ°Π½ΡΠ»Π°ΡΠΈΡ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° SDL2 ΠΏΡΠ΅Π· Canvas, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° OpenGL ΠΈ EGL ΡΡΠ΅Π· API WebGL, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ³ΡΠΈ Π² WebAssembly (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ, Π½Π°Π»ΠΈΡΠ΅Π½ Π΅ ΠΏΠΎΡΡ Π½Π° ΡΡΠ»ΠΊΠΈΡΠ° Qt, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΈΡΠ΅ Π΅Π½Π΄ΠΆΠΈΠ½ΠΈ Unreal Engine ΠΈ Unity, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΅Π½Π΄ΠΆΠΈΠ½ΡΡ Π·Π° ΡΠΈΠΌΡΠ»Π°ΡΠΈΡ Π½Π° ΡΠΈΠ·ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Bullet).
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ΄ Π½Π° C/C++, ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ Π² Π±ΡΠ°ΡΠ·ΡΡΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ Π΅Π·ΠΈΡΠΈΡΠ΅ Lua, C#, Python, Ruby ΠΈ Perl. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ½Ρ Π΅Π½Π΄ΠΎΠ²Π΅ Π·Π° LLVM, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ Clang, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ½Ρ Π΅Π½Π΄ΠΎΠ²Π΅ Π·Π° Π΅Π·ΠΈΡΠΈ ΠΊΠ°ΡΠΎ Swift, Rust, D ΠΈ Fortran.
ΠΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π΅ΡΡΠΈΡ 4.0 Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π°ΡΡΡΠ°Π²Π°ΡΠΈ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ ABI (ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Emscripten 4.0 ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Emscripten). ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Emscripten 4.0:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Β«-sWASM_LEAGCY_EXCEPTIONSΒ» Π·Π° ΠΈΠ·Π±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΠΈΡΠ΅ ΠΈ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°ΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ Π±ΡΠ°ΡΠ·ΡΡΠΈ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π»ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° WebAssembly Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
- ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ compiler-rt, libcxx, libcxxabi ΠΈ libunwind ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄ΠΎ ΠΊΠ»ΠΎΠ½Π° LLVM 19.
- ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Π±ΡΠ°ΡΠ·ΡΡΠ° Safari (Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° MIN_SAFARI_VERSION) Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΎΡ 14.1 Π½Π° 15.0, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° WebAssembly:
- ΠΠΊΠ»ΡΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΠΏ float Π² int (nontrapping-fptoint), ΠΊΠΎΠΈΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠ΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°, Π²ΡΡΡΠ°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° SIMD).
- ΠΠΊΠ»ΡΡΠ΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° WASM_BIGINT, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° ΠΌΠ΅ΠΆΠ΄Ρ WebAssembly ΠΈ JavaScript ΠΊΠΎΠ΄ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠΏΡΡ BigInt.
- ΠΠΊΠ»ΡΡΠ΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° BULK_MEMORY, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ memcpy ΠΈ memset ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ WebAssembly ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ memory.copy ΠΈ memory.fill.
- ΠΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° PATH.basename() Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΡΠΈΡΠ°ΡΠ° (PATH.normalize()), Ρ.Π΅. ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° βPATH.basename(Β«a/.Β»)β ΡΠ΅Π³Π° ΡΠ΅ Π²ΡΡΠ½Π΅ Β«.Β» Π²ΠΌΠ΅ΡΡΠΎ Β«aΒ», Π° βPATH.basename(Β«a/b/..Β»)β ΡΠ΅ Π²ΡΡΠ½Π΅ Β«..Β» Π²ΠΌΠ΅ΡΡΠΎ Β«aΒ».
- ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° Β«-sMODULARIZEΒ» ΡΠ°Π±ΡΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΈ Π²ΡΡΡΠ°Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° WebAssembly ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π·Π° JavaScript, Π²Π΅ΡΠ΅ ΡΠ° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ Ρ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Β«asyncΒ» ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ WASM_ASYNC_COMPILATION, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠΏΡΠΈΡΡΠ° Β«-lfoo.jsΒ». Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠΏΡΠΈΡΡΠ° Β«βjs-libraryΒ», ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΏΡΡΠΈΡΠ°, ΡΠΊΠ°Π·Π°Π½ΠΈ ΡΡΠ΅Π· ΠΎΠΏΡΠΈΡΡΠ° Β«-LΒ».
- ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π°ΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ° (-O0 ΠΈΠ»ΠΈ -sASSERTIONS) ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΎΡΠ»Π°Π΄ΡΡΠ½ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° malloc Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Ρ Π³ΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΡΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° free().
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
