Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 36

Тема: delete_array(array[])

  1. #21
    ?????? Аватар для Иваныч
    Регистрация
    10.02.2011
    Адрес
    Vlz
    Возраст
    28
    Сообщений
    4,152
    Репутация: 403

    Звание: - очень-очень хороший человек

    Re: delete_array(array[])

    Надо тогда сообщать сайз при использовании функции, а в функции использовать int овое значение.
    Прям как в с++

  2. #22
    Пользователь Аватар для Kazon
    Регистрация
    04.10.2011
    Адрес
    Беслан
    Возраст
    28
    Сообщений
    46
    Репутация: 12

    Звание: на пути к лучшему

    Re: delete_array(array[])

    У меня тоже ошибку выдаёт что делать?

  3. #23
    Read-only Аватар для MacMailler
    Регистрация
    03.04.2012
    Адрес
    East Kazakhstan
    Возраст
    30
    Сообщений
    1,047
    Репутация: 211

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    Цитата Сообщение от Kazon Посмотреть сообщение
    У меня тоже ошибку выдаёт что делать?
    При компиляции?

  4. #24
    Пользователь Аватар для Kazon
    Регистрация
    04.10.2011
    Адрес
    Беслан
    Возраст
    28
    Сообщений
    46
    Репутация: 12

    Звание: на пути к лучшему

    Re: delete_array(array[])

    При компиляции?
    Да типо сайз не известен

  5. #25
    boost::this_thread Аватар для Владокс
    Регистрация
    27.06.2010
    Адрес
    Екатеринбург
    Сообщений
    1,419
    Репутация: 225

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    проблему нашел, но она решима только через плагин, а его очень не хочется задействовать
    можно сделать так:
    PHP код:
    new var;

    do
    {
        
    #emit STACK 4
    }
    while(var);

    #pragma unused var 
    но, нужно соблюдать последовательность обьявленных переменных
    тоесть:
    PHP код:
    #define delete(%0) \
        
    do \
        { \
            
    #emit STACK 4 \
        
    } \
        while(%
    0)

    #define delete_arr(%0); \
        
    while(strlen(%0)) \
        { \
            
    #emit STACK 8 \
        
    }

    public 
    OnGameModeInit()
    {
        new 
    integer 41;
        new 
    Float:floating 41.2;
        new 
    bool:boolean true;
        new array[
    10] = "abcdefghi";

        
    delete_arr(array); // удаляем массив array первым, так как он был обьявлен ПОСЛЕДНИМ
        
    delete(boolean);
        
    delete(floating);
        
    delete(integer);





    Связь со мной:
    Skype: bjiadokc | ICQ: 5462016 | Mail: [email protected]

    [1:03:15 | Изменены 1:03:25] SDraw: есть идеи блокнуть установщику сцампа доступ к системной папке?
    [1:03:45 | Изменены 1:03:51] SDraw: а то эта падла файлы directx заменяет внаглую
    [1:08:38] Vladislav Barabash: поставь файлы директа в ридонли
    [1:09:14] Vladislav Barabash: chmod r-x d3*.dll

  6. #26
    Read-only Аватар для MacMailler
    Регистрация
    03.04.2012
    Адрес
    East Kazakhstan
    Возраст
    30
    Сообщений
    1,047
    Репутация: 211

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    С макросами не компилит. Сделал так:
    PHP код:
    public OnGameModeInit()
    {
        new var = 
    512;
        new 
    str[] = "Удаляй меня полностью!";
        
        while( 
    strlenstr ) )
        {
            
    #emit STACK 8
        
    }
        
        do
        {
            
    #emit STACK 4
        
    }
        while( var );
        
        return 
    1;

    Итог:
    PHP код:
    [16:17:45] [debugRun time error 7"Stack underflow"
    [16:17:45] [debug]  Stack pointer (STKis 0x4AD8stack top (STPis 0x4AD4
    [16:17:45] [debugAMX backtrace:
    [
    16:17:45] [debug#0 000001a0 in public OnGameModeInit () from new.amx 

  7. #27
    boost::this_thread Аватар для Владокс
    Регистрация
    27.06.2010
    Адрес
    Екатеринбург
    Сообщений
    1,419
    Репутация: 225

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    вообще, для работы функции в идеале, нужно скопировать все содержимое стека ПОСЛЕ конечного индекса удаляемого массива, и вставить все ДО него, чтобы стек можно было чистить с конца.
    удаление интегеров/float/bool вроде бы работает




    Связь со мной:
    Skype: bjiadokc | ICQ: 5462016 | Mail: [email protected]

    [1:03:15 | Изменены 1:03:25] SDraw: есть идеи блокнуть установщику сцампа доступ к системной папке?
    [1:03:45 | Изменены 1:03:51] SDraw: а то эта падла файлы directx заменяет внаглую
    [1:08:38] Vladislav Barabash: поставь файлы директа в ридонли
    [1:09:14] Vladislav Barabash: chmod r-x d3*.dll

  8. #28
    Read-only Аватар для MacMailler
    Регистрация
    03.04.2012
    Адрес
    East Kazakhstan
    Возраст
    30
    Сообщений
    1,047
    Репутация: 211

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    Цитата Сообщение от BJIADOKC Посмотреть сообщение
    удаление интегеров/float/bool вроде бы работает
    Не работает, такую же ошибку выдает.

  9. #29
    boost::this_thread Аватар для Владокс
    Регистрация
    27.06.2010
    Адрес
    Екатеринбург
    Сообщений
    1,419
    Репутация: 225

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    вообще, чистка стека через emit не самая лучшая затея
    а если чистить через плагин, мы все-равно выделим в стеке место под пересылку в плагин (рекурсия, мда)




    Связь со мной:
    Skype: bjiadokc | ICQ: 5462016 | Mail: [email protected]

    [1:03:15 | Изменены 1:03:25] SDraw: есть идеи блокнуть установщику сцампа доступ к системной папке?
    [1:03:45 | Изменены 1:03:51] SDraw: а то эта падла файлы directx заменяет внаглую
    [1:08:38] Vladislav Barabash: поставь файлы директа в ридонли
    [1:09:14] Vladislav Barabash: chmod r-x d3*.dll

  10. #30
    Read-only Аватар для MacMailler
    Регистрация
    03.04.2012
    Адрес
    East Kazakhstan
    Возраст
    30
    Сообщений
    1,047
    Репутация: 211

    Звание: - весьма и весьма положительная личность

    Re: delete_array(array[])

    Цитата Сообщение от BJIADOKC Посмотреть сообщение
    вообще, чистка стека через emit не самая лучшая затея
    а если чистить через плагин, мы все-равно выделим в стеке место под пересылку в плагин (рекурсия, мда)
    То есть толку от удаления мало?

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Бан на время(error 047: array sizes do not match, or destination array is too small)
    от rassoft1994 в разделе Вопросы по скриптингу
    Ответов: 6
    Последнее сообщение: 31.08.2011, 22:34
  2. array must be indexed
    от Дмитрий) в разделе Проблемы с компилированием
    Ответов: 2
    Последнее сообщение: 11.08.2011, 20:48
  3. error 047: array sizes do not match, or destination array is too small
    от Страх в разделе Проблемы с компилированием
    Ответов: 4
    Последнее сообщение: 22.06.2010, 17:11
  4. array sizes do not match, or destination array is too small
    от Страх в разделе Проблемы с компилированием
    Ответов: 1
    Последнее сообщение: 27.05.2010, 15:06

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •