Ошибки компилятора

Тема в разделе "Программирование / Скриптинг", создана пользователем inklesspen, 4 сен 2016.

  1. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    836
    Симпатии:
    198
    В общем перехожу на рекомендуемый синтаксис (#pragma newdecls required)
    И нашел такую хрень:
    error 161: brackets atfer variable name indicate a fixed-size array, but a dynamic size was given - did you mean to use "new char[size]" syntax?

    Сам кусок кода:
    PHP:
    stock void CGOPrintToChat(int client, const char[] messageany:...)
    {
        if(
    client == && client MaxClients)
            return;
        
    int a strlen(message)+190l;
        
    char b[a]; // Жалуется на это
        
    ReplaceString(bVFormat(bamessage3), "\n""~"false);
        for(
    int i=0ZCOLORi++) ReplaceString(bacolor_t[i], color_c[i]);
        if(
    l)
        {
            
    char s[l+1][192];
            for (
    int m ExplodeString(b"~"sl192), pmp++) PrintToChat(client" %s"s[p]);
        }
        else  
    PrintToChat(client" %s"b);
    }
    Перевод яндекса:
    кронштейны течение имя переменной указывает на массив фиксированного размера, а размер был дан - ты хотел использовать "новый char[Размер]" синтаксис?

    И тут понятно что он жалуется на этот синтаксис, но я хочу перейти на этот, и в то-же время убрать эту хрень
     
  2. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44
    new char b[a]; ?
     
  3. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    836
    Симпатии:
    198
    Тогда он жалуется на старый синтаксис
     
  4. Someone

    Someone

    Сообщения:
    136
    Симпатии:
    44

    А если так?

    char[] b = new char[a];
     
    inklesspen нравится это.
  5. inklesspen

    inklesspen После "Р" в слове "Лопата"

    Сообщения:
    836
    Симпатии:
    198
    О, робит, пасиб
    --- Добавлено позже ---
    А если это?
    char s[l+1][192];
    --- Добавлено позже ---
    Доперло
     
  6. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.553
    Симпатии:
    1.987
    Нужно делать в static - массив может быть очень большой и время на его инициализацию займёт секунды. Оффтоп
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.995
    Симпатии:
    2.990
    Насчет static соглашусь но при условии что ф-я будет вызываться часто. А насчет времени нет. Инициализация происходит очень быстро. 1150 элементов это еще мало. Инициализация займет сотые доли секунд.
     
  8. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.553
    Симпатии:
    1.987
    В доках по decl написано, что new String:buffer[512] уже может занять более 0 секунд. На новом синтаксисе это дело исправили?
     
  9. komashchenko

    komashchenko

    Сообщения:
    479
    Симпатии:
    421
    я же давно переписал на новый синтаксис [INC] CS:GO Colors (1.4)

    decl в новом синтаксисе нет, а static - размер массива всегда разный для чего зря тратить память