У меня есть следующий фрагмент код, который дает мне предупреждение при компиляции (код работает так или иначе):C (Linux): предупреждение: назначение отбрасывает отборочные от целевого указателя типа
char *x_first_name, *x_last_name, *x_address, *x_zip;
const size_t firsts_count = sizeof(firsts)/sizeof(firsts[0]);
const size_t lasts_count = sizeof(lasts)/sizeof(lasts[0]);
const size_t streets_count = sizeof(streets)/sizeof(streets[0]);
const size_t zips_count = sizeof(zips)/sizeof(zips[0]);
srand(time(NULL));
x_first_name = firsts[rand() % firsts_count]; // line 69
x_last_name = lasts[rand() % lasts_count]; // line 70
x_address = streets[rand() % streets_count]; // line 71
x_zip = zips[rand() % zips_count]; // line 72
Предупреждения компиляции:
authorize.c: In function 'main':
authorize.c:69: warning: assignment discards qualifiers from pointer target type
authorize.c:70: warning: assignment discards qualifiers from pointer target type
authorize.c:71: warning: assignment discards qualifiers from pointer target type
authorize.c:72: warning: assignment discards qualifiers from pointer target type
Firsts, прессформ, улица и молнии объявлены как:
const char *firsts[] = {
"Asgar",
"Aadit",
"Aanand",
"Aaron"
};
Что я делаю неправильно?
Вы не указали определения для 'firsts',' lasts' и т. Д. По внешности ошибки они включают 'const', тогда как' x_first_name' нет. – sh1
Как объявляются 'firsts',' lasts' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''? – Hasturkun
Также ожидаем, что вас будет беспокоить использование 'rand()% k'. – sh1