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