本文主要是介绍标准库函数strcat 引起数组越界操作的分析与解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
- 在使用字符串(字符数组)连接时,可能会想到:C标准库函数
<string.h>
中的:strcat
strcat
使用时需要注意目标字符串的长度,不正确的使用,会引起源字符串数组的越界操作
测试例程
- 如下执行:
strcat_test
时,发现了数组的越界操作,把其他内存变量的数据破坏了
void strcat_test(void)
{uint32_t cnt = 0;char name0[8] = { 'a', '0' };char name1[8] = { 'a', '1' };char name2[8] = { 'a', '2' };char name3[8] = { 'a', '3' };const char *str_test1 = "hellllllllllllllllll";const char *str_test2 = "99999999999999999999";printk("---strcat before---.\r\n");printk("%s\r\n", name0);printk("%s\r\n", name1);printk("%s\r\n", name2);printk("%s\r\n"
这篇关于标准库函数strcat 引起数组越界操作的分析与解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!