Как уже указывалось в комментариях, переменная img
выходит из области действия }
после ее определения. Он не используется, пока он определен - отсюда и предупреждение «неиспользованная переменная». Он недоступен после }
- отсюда и предупреждение 'undeclared variable'.
Если предположить, что error_exit
- это макрос, который каким-то образом выходит из программы, то вам, вероятно, следует написать:
int main(int argc, char *argv[])
{
if (argc != 2)
error_exit;
struct ppm* img = ppm_read(argv[1]);
find_msg(img);
}