- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在 Olimex LPC2378-STK 上做一些工作。
我有以下声明。
unsigned char buffer[256];
然后我尝试做:
strncpy((char *)buffer, "CREATED_BY", 255);
有谁知道为什么这会导致问题。
如果我注释掉它运行没有问题的代码行,但使用它似乎会导致程序终止。
有人有什么想法吗?
最佳答案
您发布的代码本质上没有错,但没有上下文。例如,如果 buffer[]
是局部变量,它将在堆栈上创建,并且您可能会溢出堆栈。
您可以将其声明为 static 以查看问题是否消失,这将验证堆栈溢出。如果变量需要是临时的,那么您将需要分配一个适当更大的堆栈。
请注意,堆栈溢出可能不会专门发生在 strncpy 中。 buffer
可能包含在堆栈中,但其大小可能已将其他对象推到堆栈之外,因此写入它们 会导致堆栈损坏。失败点通常是函数尝试使用损坏的返回地址返回时。您真的应该使用调试器来单步执行代码,以查看调用堆栈、堆栈指针以及函数是否在 strncpy 上失败或调用函数返回时失败。
关于代码安全性和可维护性的一点,你应该更喜欢:
strncpy((char *)buffer, "CREATED_BY", sizeof(buffer) - 1);
您还可以更方便地使用初始化器:
unsigned char buffer[256] = "CREATED_BY" ;
关于c - strncpy 导致 LPC-2378 挂起/死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045953/
LPC 4370 link2 与 huzzah esp8266 分线板交互。我正在使用 LPC XpressO,但所有可用代码均来自 Arduino。尝试更改代码以适合我的程序员。 WiFi.begi
更新托管驱动程序中的对象将显示任何语法错误,并以适当的方式记录任何运行时。我可以检查对象中的全局变量并使用命令进行继承,但是在检查函数范围的变量和参数,或单步执行函数并在执行期间检查时,我不知所措。
我是信号处理的新手,正在尝试为不同的.wav文件计算共振峰频率特征。 为了计算共振峰频率,我需要三个参数值: 线性预测系数(LPC) 根 Angular 我正在尝试在python中使用librosa.
首先声明我是嵌入式技术的新手。我正在使用 NXP LPC1769 板。几天来,我一直在寻找有关如何使用看门狗从深度 sleep 模式唤醒的示例,但我找不到。 我阅读了 UM10360 的第 21.1
我正在研究基于 lpc2468 ARM 的微 Controller 。我无法配置 Controller 的 UART1。以前我出于同样的目的使用 UART0,但由于硬件的一些变化,现在我不得不使用 U
我想知道如果我想在 lpc 2468 中启用 MAM 功能,我应该同时指定 MAMTIM 和 MAMCR 寄存器还是只指定 MAMCR。 Is it necessary to specify MAMT
我正在使用以下代码,其主要主题是在lpc 1837中生成引脚中断,我在获取中断方面遇到了麻烦,任何人都可以提出这段代码中出了什么问题的建议编译器:Keil /* Configure pin as di
我是信号处理的新手(以及 numpy、scipy 和 matlab 方面的新手)。我正在尝试通过调整此 matlab 代码在 Python 中使用 LPC 估计元音共振峰: http://www.ma
Linux 设备驱动程序如何处理通过 LPC(低引脚数)总线连接的设备生成的 SERIRQ 中断?特别是,如何区分总线上一个设备产生的中断与总线上另一个设备产生的中断? 最佳答案 SERIRQ 串行编
我正在 Olimex LPC2378-STK 上做一些工作。 我有以下声明。 unsigned char buffer[256]; 然后我尝试做: strncpy((char *)buffer, "C
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 恩智浦全系列MCU(包含Kinetis, LPC, i.MXRT, MCX)的GPIO电平中断设计差异 . 在痞子衡旧文
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在使用 Arch Linux,但没有找到任何软件可以让我将文件闪存到我的微 Controller 上。我学校的闪存文档有一个 python 文件,当我运行它时,我收到错误消息 root: Time
我们有一个基于 Atom Z510/Intel SCH US15W Q7 卡(运行 Debian Linux)的系统。我们需要从低引脚数总线上的设备传输数据块。据我所知,该芯片组不提供 DMA 功能,
我正在尝试在几个 LPC 设备节点之间设置 CAN 通信。我的设置包括几个写入 CAN 总线的 CAN 节点。例如,LPC 2292 CAN Controller 可以写入 CAN 总线,而 LPC1
我是一名优秀的程序员,十分优秀!