You are right with the elements starting from 0, That is fine with me and my string array is initialized after reading values from a file. I just put the part of code where I had problem.
Why do you want to do this with a string? You can use the at function to do this.
Normally the pointer is of a type of the data being held in the array - for example an array of ints would use a ptr to int. This is so the compiler can figure out how big each element is, so it can do the memory arithmetic properly. You have a ptr to string - how big is that? I mean it is of unknown size, don't use the sizeof operator.
If you want to do the C approach, use a char array. Make the ptr, a ptr to char.