GPRS with SM5100B

  char* a;

The variable a is a pointer. Where does it point to?

     for(i=0;i<=9;i++){
        a[i]=cell.read();
     }

Regardless of whether a response has been received, or not, you try to read 10 characters and put them in the place that a points to. To repeat, where does a point to?

There are a lot of similarities between pointers and arrays, and they can almost always be used interchangeably, with one major exception. That is that pointers THAT HAVE BEEN POINTED TO SOME MEMORY and arrays are nearly always interchangeable.

Your pointer has NOT been pointed to some memory, so you can't use it like it were an array. You need a REAL array.

        if (a=="+SIND: 11"){

The pointer a will NEVER point to the constant string "+SIND: 11", so they will NEVER be equal.

first i don't have the function strcmp

Yes, you do.