我正在尝试创建一个长度可修改的数组,我定义了一个名为“add”的函数,该函数应该在数组的最后一个位置添加一个字符,但这导致putchar和printf无法工作。为什么会发生这种情况?我该如何修复它?
输出应为“hix”,输出显然为“”
#include <stdio.h> typedef struct { char* ptr; size_t len; } bytes; void add(bytes text, char chr) { text.ptr[text.len++] = chr; } bytes parse(char text[]) { size_t index = 0; while (text[index]) ++index; return (bytes) {text, index}; } void print(bytes text) { for (size_t index = 0; index < text.len; ++index) { putchar(text.ptr[index]); } } int main() { bytes str = parse("hi"); add(str, 'x'); // if i remove this line "print" works, but only prints "hi" print(str); return 0; }