我知道发生这个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之前,您需要将其终止。

09-11 18:33