我正在编写一个允许某人扩展 char* 数组的函数,在进行一些测试时,我注意到当我放置超过 3 个元素时,第二个元素会损坏。
这是函数本身:
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;
}
还注意到当元素数量超过 17 个元素时,程序会崩溃。