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

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±

    Почему не отображается символ, записанный в последней ячейке массива?

    PHP код:
    new salt[8];
        for(new 
    08i++) 
        {
            
    salt[i] = random(122-48)+48;
            
    printf("%d: %c"isalt[i]);
        }
        print(
    salt); 
    Результат:
    PHP код:
    0N
    1
    G
    2
    q
    3
    T
    4
    : ?
    5N
    6
    k
    7
    : >
    NGqT?Nk>† // <- Почему 9 символов? Если в цикле 8: 0 + 1-7 = 8 

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Нужно добавить ещё один символ для обозначения конца строки.
    PHP код:
    new salt[9];
    for(new 
    08i++)
    {
        
    salt[i] = random(122-48)+48;
        
    printf("%d: %c"isalt[i]);
    }
    salt[8] = '\0';
    print(
    salt); 
    Хотя я бы написал так, чтобы когда-нибудь случайно не выйти за пределы массива:
    PHP код:
    new salt[9];
    for(new 
    0sizeof(salt) - 1i++)
    {
        
    salt[i] = random(122-48)+48;
        
    printf("%d: %c"isalt[i]);
    }
    salt[sizeof(salt) - 1] = '\0';
    print(
    salt); 
    Последний раз редактировалось ziggi; 23.08.2016 в 00:16.

  3. Пользователь сказал cпасибо:
    _lizard (22.08.2016)
  4. #3
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Нужно добавить ещё один символ для обозначения конца строки.
    PHP код:
    new salt[9];
    for(new 
    08i++)
    {
        
    salt[i] = random(122-48)+48;
        
    printf("%d: %c"isalt[i]);
    }
    salt[8] = '\0';
    print(
    salt); 
    Хотя я бы написал так, чтобы не выйти за пределы массива:
    PHP код:
    new salt[9];
    for(new 
    0sizeof(salt) - 1i++)
    {
        
    salt[i] = random(122-48)+48;
        
    printf("%d: %c"isalt[i]);
    }
    salt[sizeof(salt) - 1] = '\0';
    print(
    salt); 
    Спасибо, работает

 

 

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

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

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

Ваши права

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