条件跳转或移动取决于未初始化的值 strcat

har*_*503 0 c tokenize racket

我知道发生这个 valgrind 错误是因为我试图使用未初始化的东西。下面的代码是导致此错误的代码。它正在做的是尝试读取 Racket 代码并获取每个符号,例如 + 或define。(标记化)我不希望您彻底理解代码,因为还有很多其他代码可以理解它在做什么。但是,如果您能就我在该行收到此错误的原因提出您的想法,我将不胜感激,symbol = strcat(symbol, newsymbol);

char* newsymbol = talloc(sizeof(char)*2);
                *newsymbol = charRead;
                newsymbol[1] = '\0';
                symbol = strcat(symbol, newsymbol);
Run Code Online (Sandbox Code Playgroud)

Iha*_*imi 5

因为symbolnul终止,您需要nul在将其传递给strcat().