в моем коде есть строка char* chunktl[140];
, которая определяет chunktl как массив символов, позже код заполняет эти значения, но это не имеет значения, есть еще одна строка int arrayloc = relx + 7 +(8-rely)*16;
, которая определяет arrayloc как целое число, какие переменные не имеют значения однако ошибка
error: passing argument 1 of ‘pixrender’ makes integer from pointer without a cast [-Wint-conversion]
206 | pixrender(chunktl[arrayloc]);
| ~~~~~~~^~~~~~~~~~
| |
| char *
terraria.c:81:22: note: expected ‘char’ but argument is of type ‘char *’
81 | char* pixrender(char a)
| ~~~~~^
все еще появляется и предполагает, что chunktl[arrayloc] — это строка?
Я пробовал преобразовать arrayloc в различные типы (unsigned int, long и т. д.), но это не помогло.
ох, спасибо, теперь я понял
char* chunktl[140];
создает массив из 140 указателей (char *
).
chunktl[arrayloc]
возвращает один из этих указателей.
Вы передаете один из этих пунктов pixrender
.
pixrender
нужен char
, а не указатель.
Если вам нужен массив из 140 значений char
, вам нужен char chunktl[140];
.
Традиционное прохождение. +1
Есть ли способ преобразовать указатель в символ, на который он указывает?
*p
___________
который определяет chunktl как массив символов - это не так. Он определяет массив указателей на
char
. OTOH,char blah[140];
— это массив символов