我想将一个字符附加到一个表示字符串的字符数组中。我正在使用 Struct 来表示字符串。
struct String
{
char *c;
int length;
int maxLength;
}String;
realloc弄乱了我的数组;当我打印我的字符串时,它会从内存中打印随机的东西。我觉得我通过 realloc 失去了对我的字符串的引用。
void appendChar(String *target, char c)
{
printf("\String: %s\n", target->c); // Prints the String correctly.
int newSize = target->length + 1;
target->length = newSize;
if(newSize > target->maxLength)
{
// Destroys my String.
target->c= (char*) realloc (target, newSize * sizeof(char));
target->maxLength = newSize;
}
target->c[newSize-1] = ch;
target->c[newSize] = '\0';
printf("String: %s\n", target->c);
}