Advertisement
Guest User

dynmem пример

a guest
Apr 12th, 2010
268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.73 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #include "dynmem"
  4.  
  5.  
  6. public OnFilterScriptInit()
  7. {
  8.     // Пример записи строки в память и последующего ее чтения оттуда
  9.    
  10.     new str[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  11.     new buf[100]; // буфер для хранения результата
  12.    
  13.     new Pointer:ptr = mem_allocate(sizeof(str));
  14.    
  15.     if (ptr == NULL)
  16.     {
  17.         // Если mem_allocate возвращает NULL,
  18.         // память не была выделена
  19.         print("Error!!1");
  20.         return 0;
  21.     }
  22.    
  23.     mem_set(ptr, str);
  24.     mem_get(ptr, buf);
  25.     printf(buf);
  26.    
  27.     // По окончании использования следует освободить выделенную память
  28.     mem_free(ptr);
  29.  
  30.     /////////////////////////////////////////////////////////////////////
  31.  
  32.     // Похожий пример, здесь строка записывается по частям
  33.    
  34.     // В данном случае память выделяется сразу при
  35.     // создании указателя с помощью спец. макроса (см. в инклуде)
  36.     new Pointer:p<100>; // Выделили 100 ячеек
  37.  
  38.     if (p == NULL)
  39.     {
  40.         // Если mem_allocate возвращает NULL,
  41.         // память не была выделена
  42.         print("Error!!1");
  43.         return 0;
  44.     }
  45.    
  46.     mem_set(p, "первая строка\n");
  47.     mem_set(p, "вторая строка\n", 14);
  48.     mem_set(p, "третья\n", 28);
  49.     mem_set(p, "и четвертая!\n", 35);
  50.    
  51.     mem_get(p, buf, 0);
  52.     print(buf);
  53.  
  54.     // По окончании использования следует освободить выделенную память
  55.     mem_free(p);
  56.    
  57.     return 1;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement