> int store = 0; // next storage position in queue[]
> int retrieve = 0; // retrieve position in queue[]
> char *queue[100]; // this array forms the queue
Put these things into a queue structure, so you can write things like
addToQueue( &myQueue, myString );

You will need multiple queues, so it makes sense to parameterise your queue functions to be able to add to any instance of a queue.

> ptr = (char *) malloc(strlen(str));
1. Don't cast malloc in C programs, see the FAQ
2. Don't forget to count the \0 as well when allocating space for strings.