Mixing C and Cobol is always great fun.
Perhaps this helps:
1: You assume that an integer in C has the same layout as a S9(4) comp
item in Cobol. Infact the S9(4) om many compilers occupies two bytes.
If the C-int on your machine is 4 bytes, you will always get the
first two bytes in your program. Depending on the value you are stuck
with your zero value.
2: Be aware that there can be byte-ordering differences between C and
Cobol. Depending on the system you use.
3:Try democall(request,response,&integer); or
democall(&request[0], &response[0], &integer);
Please, do have fun. Makes live a lot more easier.