Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 2 из 2
  1. #1
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±

    sscanf warning: String buffer overflow.

    При вводе пользователем строки, содержащей более 96 символов, в консоль выводится предупреждение о переполнении буфера (sscanf warning: String buffer overflow).
    Как можно избавится от подобного рода предупреждения, или стоит просто игнорировать его?

    Пример:
    1. CMD:me(playerid, params[])
    2. {
    3. new string[9+(-2+MAX_PLAYER_NAME)+(-2+3)+(-2+96)+1];
    4. if(sscanf(params, "s[96]", params[0])) return SCM(playerid, COLOR_WHITE, "Введите: /me [действие]");
    5. format(string, sizeof(string),"%s[%i] %s", PlayerInfo[playerid][pName], playerid, params[0]);
    6. SetPlayerChatBubble(playerid, params[0], COLOR_PURPLE, 30.0, 10000);
    7. return 1;
    8. }

  2. #2
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Тебе в таком случае sscanf и не нужен.
    1. if(!(0 <= strlen(params) <= 96)) return SCM(playerid, COLOR_WHITE, "Введите: /me [действие]");

  3. Пользователь сказал cпасибо:
    punkochel (01.06.2020)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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