问题标签 [asprintf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
33 浏览

c - C : 为什么用 sprintf 修改局部变量?

考虑这个例子。我在下面创建了一个本地范围缓冲区,可以存储 2 个字符和一个终止符。但是当我用 2 位数字(即 a = 20)越过该阈值时,当我调用 sprintf 时会发生一些奇怪的事情。a 被修改并打印出 0。如果我将 buff 大小从 3 更改为 4。变量 a 不会改变。这是什么令人沮丧的行为?我正在使用 clang 13.0.0 编译器。

谢谢。