我知道发生这个 valgrind 错误是因为我试图使用未初始化的东西。
下面的代码是导致此错误的代码。它正在做的是尝试读取 Racket 代码并获取每个符号,例如 + 或 define。 (标记化)
我不希望您彻底理解代码,因为还有很多其他代码可以理解它在做什么。
但是,如果您能告诉我您在该行出现此错误的原因,我将不胜感激,symbol = strcat(symbol, newsymbol);
char* newsymbol = talloc(sizeof(char)*2);
*newsymbol = charRead;
newsymbol[1] = '\0';
symbol = strcat(symbol, newsymbol);
最佳答案
因为 symbol
不是 nul
终止你需要 nul
在将它传递给 strcat()
之前终止它.
关于条件跳转或移动取决于未初始化的值 strcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30043767/