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

标签 c racket tokenize

我知道发生这个 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/

相关文章:

c - C 中的链表 : Having issues with entering string and displaying it

c - 单个声明中多个声明符的初始化顺序

scheme - 方案中的莱布尼茨公式

java - 如何将字符串拆分成组?

javascript - 如何使用javascript标记句子

c - 最后一次循环迭代的内存分配失败

c - 处理位图 header

events - Racket:在框架%窗口中使用事件

scheme - 方案(队列)的基本库

string - BAT 脚本中使用 FOR/F 解析 PATH