Line 8 declares a pointer to a th_info object. The pointer is left uninitialized and subsequently dereferenced in the following lines. I'm guessing you're missing a call to initialize info (maybe line 20 or something similar).
moorecm seems to be right. You initialized a pointer to nothing, assigned if values which went no where and tried passing it to a function. Good eye moorecm
I don't understand, when I write " th_encode_alloc(info);", the error is "undefined reference to '_th_encode_alloc', and when I write "th_encode_alloc();", the error is "to few arguments to function
'th_encode_ctx* th_encode_alloc(const th_info*)'". Please help me!
The headers don't necessarily contain definitions for the functions, they may just contain prototypes. The libraries will contain the actual function definitions.
You don't create the libraries (at least not this one) you download the library and link it in the when the program compiles by either manually editing the makefile or doing so in your IDE
/usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to 'WinMain@16'
collect2: ld returned 1 exit status