I was writing a function that allow someone to expand an array of char*, and while doing some test I noticed that when I put more than 3 elements, the second one become something corrupted.
This is the function itself:
void Data::PushBack_String(char** PtrToPtr, char* Ptr, unsigned short Index)
{
unsigned short String_Length;
for(String_Length = 0; Ptr[String_Length] != '\0'; ++String_Length);
++String_Length;
char* NewPtr = (char*)malloc(String_Length);
strcpy(NewPtr, Ptr);
PtrToPtr = (char**)realloc(PtrToPtr, Index);
PtrToPtr[Index] = NewPtr;
}
Also noticed that when the number of elements exceed 17 elements the program crashes.