bug积累

1.只写 int p[len1 + len2]; 时,实际上是在使用 C99 标准中引入的变长数组(VLA, Variable Length Array)的特性。变长数组允许在栈上分配其大小在运行时确定的数组。这意味着 len1 和 len2 的值可以在程序运行时确定,但仍然可以用来声明数组 p 的大小。如果 len1 + len2 的值非常大,可能会导致栈溢出,因为变长数组是在栈上分配的。变长数组不能被初始化,因为编译器在编译时不知道数组的确切大小,因此无法为数组分配初始值。这就是为什么 int p[len1 + len2] = {}; 会报错的原因。

c 复制代码
    int p[len1 + len2] = {};//报错 不能直接定义
    int p[len1 + len2];
  1. ch2[len] = '\0';//需要在字符数组后面添加,不然会出现垃圾值,不会自动补全字符数组,需要自己手动添加 '\0'。
c 复制代码
#include <stdio.h>
/*12. 把一个字符串所有内容反转
	如: hello world 结果: dlrow olleh*/
int main()
{
    char *ch1 = "hello world";
    int len = strlen(ch1);
    char ch2[len+1];
    for (int i = 0; i < len; i++)
    {
       ch2[i] = ch1[len-1-i];
    }
    ch2[len] = '\0';//需要在字符数组后面添加,不然会出现垃圾值
    printf("%s",ch2);
    return 0;
}//输出结果dlrow olleh
相关推荐
hjyowl2 小时前
题解:AT_abc407_c [ABC407C] Security 2
c语言·开发语言·算法
old_power4 小时前
UCRT 和 MSVC 的区别(Windows 平台上 C/C++ 开发相关)
c语言·c++·windows
@老蝴5 小时前
C语言 — 编译和链接
c语言·开发语言
东方不败之鸭梨的测试笔记6 小时前
20250605车充安服务器受木马攻击导致服务不可用
bug
LunaGeeking6 小时前
三分算法与DeepSeek辅助证明是单峰函数
c语言·c++·算法·编程·信奥赛·ai辅助学习·三分
Htht1116 小时前
【Qt】之【Get√】【Bug】通过值捕获(或 const 引用捕获)传进 lambda,会默认复制成 const
数据库·bug
whoarethenext8 小时前
使用 C/C++ 和 OpenCV 实现滑动条控制图像旋转
c语言·c++·opencv
前端发现9 小时前
如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)
bug
陳麦冬11 小时前
深入理解指针(二)
c语言·学习
景彡先生15 小时前
C++中的变量
c语言