Просмотр полной версии : [Вопрос] Почему не отображается символ, записанный в последней ячейке массива?
new salt[8];
for(new i = 0; i < 8; i++)
{
salt[i] = random(122-48)+48;
printf("%d: %c", i, salt[i]);
}
print(salt);
Результат:
0: N
1: G
2: q
3: T
4: ?
5: N
6: k
7: >
NGqT?Nk>† // <- Почему 9 символов? Если в цикле 8: 0 + 1-7 = 8
Нужно добавить ещё один символ для обозначения конца строки.
new salt[9];
for(new i = 0; i < 8; i++)
{
salt[i] = random(122-48)+48;
printf("%d: %c", i, salt[i]);
}
salt[8] = '\0';
print(salt);
Хотя я бы написал так, чтобы когда-нибудь случайно не выйти за пределы массива:
new salt[9];
for(new i = 0; i < sizeof(salt) - 1; i++)
{
salt[i] = random(122-48)+48;
printf("%d: %c", i, salt[i]);
}
salt[sizeof(salt) - 1] = '\0';
print(salt);
Нужно добавить ещё один символ для обозначения конца строки.
new salt[9];
for(new i = 0; i < 8; i++)
{
salt[i] = random(122-48)+48;
printf("%d: %c", i, salt[i]);
}
salt[8] = '\0';
print(salt);
Хотя я бы написал так, чтобы не выйти за пределы массива:
new salt[9];
for(new i = 0; i < sizeof(salt) - 1; i++)
{
salt[i] = random(122-48)+48;
printf("%d: %c", i, salt[i]);
}
salt[sizeof(salt) - 1] = '\0';
print(salt);
Спасибо, работает
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot