в моем коде есть строка 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];— это массив символов