gpt4 book ai didi

c - 在 C 中将字符附加到字符数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:43 26 4
gpt4 key购买 nike

我想将一个字符附加到表示字符串的字符数组。我正在使用 Struct 来表示字符串。

struct String
{
char *c;
int length;
int maxLength;

}String;

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);
}

最佳答案

你正在对你的整个结构 target 应用 realloc,你应该这样做:

target->c= (char*) realloc (target->c, newSize * sizeof(char));

关于c - 在 C 中将字符附加到字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18891226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com