首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vsprintf失败

vsprintf失败
EN

Stack Overflow用户
提问于 2012-08-15 10:55:57
回答 1查看 1.5K关注 0票数 0

作为Uni任务的一部分,我正在为HCS12微控制器编写与液晶屏接口的C代码,并且我遇到了一个问题,如果我试图用vsprintf制作一个printf包装器,就会发生异常,并且控制器进入不可用状态。

代码语言:javascript
复制
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中的某个地方崩溃了,但我仍然不知道为什么。我怎么才能让它正常工作呢?

EN

回答 1

Stack Overflow用户

发布于 2012-08-31 18:03:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11963541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档