Strings in C are not first-class objects -- they're just a special case of arrays, which themselves are just a special case of pointers. One of the consquences of this is that operations such as assignment don't work as you'd expect. The line
newInfo[index] = info;
isn't copying the string "info", it's copying the underlying pointer. In order to copy a string, you need to use "strcpy()" (if you've already allocated space for the string), or "strdup()" if you haven't (and then you need to remember to free the memory allocated). In your code, you would replace the above line with
newInfo[index] = strdup(info);