gpt4 book ai didi

c - vsprintf 失败

转载 作者:行者123 更新时间:2023-11-30 17:58:49 26 4
gpt4 key购买 nike

我正在为 HCS12 微 Controller 编写 C 代码,以与 LCD 屏幕连接,作为 Uni 作业的一部分,我遇到一个问题,如果我尝试使用 vsprintf 制作 printf 包装器,则会发生异常并且 Controller 进入不可用状态。

void printfLCD(const char *fmt, ...) {
char buffer[256];
va_list args;
va_start(args, fmt);
(void)vsprintf(buffer, fmt, args);
putsLCD(buffer);
va_end(args);
}

通过调试我可以看到它在 vprintf 的某个地方崩溃了,但我仍然不知道为什么。我怎样才能让它工作?

最佳答案

你的缓冲区在堆栈上吗?一些编译器(如 Keil 编译器)会假设您不希望重入并将局部变量放入数据空间中。然而,如果它在堆栈上,它可能太大了。您可能希望将缓冲区设置为静态,看看是否有帮助。

关于c - vsprintf 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com