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

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
В общем перехожу на рекомендуемый синтаксис (#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[] message, any:...)
{
    if(client == 0 && client > MaxClients)
        return;
    int a = strlen(message)+190, l;
    char b[a]; // Жалуется на это
    l = ReplaceString(b, VFormat(b, a, message, 3), "\n", "~", false);
    for(int i=0; i < ZCOLOR; i++) ReplaceString(b, a, color_t[i], color_c[i]);
    if(l)
    {
        char s[l+1][192];
        for (int m = ExplodeString(b, "~", s, l, 192), p; p < m; p++) PrintToChat(client, " %s", s[p]);
    }
    else  PrintToChat(client, " %s", b);
}

Перевод яндекса:
кронштейны течение имя переменной указывает на массив фиксированного размера, а размер был дан - ты хотел использовать "новый char[Размер]" синтаксис?

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

Someone

Участник
Сообщения
1,933
Реакции
1,653
В общем перехожу на рекомендуемый синтаксис (#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[] message, any:...)
{
    if(client == 0 && client > MaxClients)
        return;
    int a = strlen(message)+190, l;
    char b[a]; // Жалуется на это
    l = ReplaceString(b, VFormat(b, a, message, 3), "\n", "~", false);
    for(int i=0; i < ZCOLOR; i++) ReplaceString(b, a, color_t[i], color_c[i]);
    if(l)
    {
        char s[l+1][192];
        for (int m = ExplodeString(b, "~", s, l, 192), p; p < m; p++) PrintToChat(client, " %s", s[p]);
    }
    else  PrintToChat(client, " %s", b);
}

new char b[a]; ?
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
Нужно делать в static - массив может быть очень большой и время на его инициализацию займёт секунды
Насчет static соглашусь но при условии что ф-я будет вызываться часто. А насчет времени нет. Инициализация происходит очень быстро. 1150 элементов это еще мало. Инициализация займет сотые доли секунд.
 

komashchenko

Идиот
Сообщения
916
Реакции
2,570
я же давно переписал на новый синтаксис [INC] CS:GO Colors (1.4)

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

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