If you have a char array[] that can hold arbitrary binary data, some of the values can be negative, since char is usually signed. isapha(array[i]) is undefined behavior if array[i] is a negative value other than EOF. If it doesn't crash, it will likely index backwards into a lookup table and access garbage.
EDIT: I see from the dead reply that this is a bot, or a "vibe coder" who doesn't understand the code. The bizarre remark "<ctype h> is solely to allow me to define structs using typdef" is nonsensical. Whoever (or whatever) wrote the code understands that <ctype.h> provides functions like isalpha and is unrelated to defining C types.