文字列を表す文字配列に文字を追加したい。String を表すために 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);
}