惊奇发现!C语言连续定义两个字符数组出问题!

gaaracn gaaracn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
C语言连续定义两个字符数组时,跟进debug就会发现,后面定义的字符数组虽然大小没错,但内容居然显示出是两个数组的和!程序如下:
int main(int argc, char* argv[])
{
char *str = "12345678abcdefgh";
char cArray1[8];
int i = 0;
char cArray2[8];

int len = strlen(str);

for (i = 0; i < 8; ++i)
{
cArray1[i] = str[i];
}
for (i = 0; i < len - 8; ++i)
{
cArray2[i] = str[i + 8];
}
printf("%s\n", cArray1);
printf("%s\n", cArray2);
return 0;
}
看图:

这是刚开始debug时,cArray2就已经显示内容为8字节16个字符了!

这是debug快结束时,看到cArray2的内容是12345678abcdefgh,16个字符!

而且printf出来真的给我这么显示md!气死我了!求解释!求大神!
然后我发现只要在两个连续的定义中间加一句别的,就不会出现这个问题了。
看图:

这样两个都是4字节8个字符。

debug显示正常

运行结果也正常。
是不是跟什么C的内存分配有关系啊?那块儿我可是真不懂!直接求指导啊,大神!
还有第一个字符串显示后面为什么不干净有个问号什么的。
...全文

相关推荐

chrome-headless-shell-win32-159.0.8132.0(Canary).zip

chrome-headless-shell-win32-159.0.8132.0(Canary).zip

LCG元

惠普150 联想1821 1831 1831W定影清零,转印带清零

惠普150 联想1821 1831 1831W定影清零,转印带清零,报错不打印,通过清零软件可以清除。内附使用说明。

weixin_45614853

【电液伺服执行器与PI控制器】带有PI控制器的电液伺服执行器的模拟研究(Simulink仿真实现)

内容概要:本文围绕带有PI控制器的电液伺服执行器开展模拟研究,利用Simulink工具构建系统仿真模型,深入分析PI控制器在电液伺服系统中的控制性能与动态响应特性。研究内容涵盖系统建模、PI控制参数整定、仿真结果分析等关键环节,重点探讨PI控制器对系统稳定性、响应速度及抗干扰能力的优化作用,并通过仿真验证控制策略的有效性与实用性; 适合人群:具备自动控制原理、液压传动基础知识及Simulink仿真能力的自动化、机械电子、控制工程等相关专业的高校学生、研究生及工程技术人员; 使用场景及目标:①用于自动控制类课程的教学实验或课程设计,帮助学生深入理解电液伺服系统的工作原理与典型控制方法;②应用于工业高精度执行机构的控制器设计,为实际工程中的系统优化提供理论支撑与仿真验证手段; 阅读建议:文中提供的Simulink模型与仿真流程具备良好的可复现性,建议读者结合具体工况调整PI参数,进一步探究PID或其他先进控制算法的改进效果,以深化对控制系统设计的理解与应用能力。

三伯

FYZN PcbDesigner.App.1.0.18.12-win10.rar

打开与保存 常用格式直接读写:打开、编辑、保存 .PcbDoc(含设计规则、层叠等信息)也能打开看结构 原理图文档:打开 / 新建 .SchDoc,和 PCB 文档一起在左侧项目树里管理,双击节点即可重开 另存为通用 ASCII:原理图与 PCB 都能导出为 ASCII 格式,方便文本比对、脚本处理,或交给别的流程 底图参考:需要对着图描的时候,可以给每个图层各放一张参考底图,与文件分开存 JSON,迁移工程时能一起带走 最近文件:最近打开的文件列表里可以直接右键「打开文件位置」 win10版本

b450207756

软件测试浏览器自动化测试3

内容概要:本文介绍了浏览器自动化测试的三种主流工具——Selenium、Playwright 和 Puppeteer,并重点展示了 Puppeteer 的一个最小可运行代码示例。文章指出,从选型角度看,2026年的技术共识是新项目应优先选择 Playwright,已有 Selenium 框架的项目无需主动替换,而 Puppeteer 更适用于仅针对 Chrome 浏览器且运行环境为 Node.js 的场景。文中提供的 Puppeteer 示例涵盖了启动浏览器、打开页面、设置视口、键盘操作、元素定位与点击等核心操作流程,体现了其作为“浏览器控制库”的定位。同时强调,Puppeteer 本身不包含测试运行器和断言功能,需结合 Jest 等测试框架才能完整实现自动化测试能力,这是它与 Playwright 和 Selenium 的本质区别。; 适合人群:具备一定前端或自动化测试基础,从事 Web 自动化测试相关工作的开发与测试人员,尤其是面临工具选型的技术决策者;; 使用场景及目标:①帮助开发者快速理解 Puppeteer 的基本使用方式及其在实际项目中的应用流程;②为团队在自动化测试工具选型时提供明确的技术方向建议,尤其是在新项目中评估 Playwright 与 Puppeteer 的适用边界;; 阅读建议:在学习本文时,建议结合实际编码环境运行示例代码,并进一步探索 Puppeteer 与 Jest 的集成方案,以构建完整的测试闭环;同时关注 Playwright 相对于 Puppeteer 的优势,如多浏览器支持和内置测试模型,以便做出更合理的工程决策。

Bert.Cai
评论 10
收藏 已收藏
分享
返回顶部
gaaracn
C语言 70,039 成员 243,237 内容