社区
C语言
帖子详情
请问这个字符串拷贝 错在哪里哦?
Javcs
2007-03-14 11:28:11
main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p2);
}
...全文
230
11
打赏
收藏
请问这个字符串拷贝 错在哪里哦?
main() { char *p1=“name”; char *p2; p2=(char*)malloc(20); memset (p2, 0, 20); while(*p2++ = *p1++); printf(“%sn”,p2); }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Javcs
2007-03-15
打赏
举报
回复
是的 指到串尾去了
chengzanmiao
2007-03-15
打赏
举报
回复
跟越界没关系,在p1的最后"\0"是可以保护的。。
p2指针被修改后最后指向字符串的末尾,所以打印不出什么东西来。。
char *p1=“name”;
char *p2,*p3;
p2=(char*)malloc(20);
p3 = p2
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p3);
xinai0521
2007-03-15
打赏
举报
回复
main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p2);//错在这里,其它什么地方都没有错!
}
xinai0521
2007-03-15
打赏
举报
回复
请大学认真测试过后再说吧!
while(*p2++ = *p1++);
0040D7CC mov ecx,dword ptr [ebp-8]
0040D7CF mov edx,dword ptr [ebp-4]
0040D7D2 mov al,byte ptr [edx]
0040D7D4 mov byte ptr [ecx],al
0040D7D6 mov ecx,dword ptr [ebp-8]
0040D7D9 movsx edx,byte ptr [ecx]
0040D7DC mov eax,dword ptr [ebp-8]
0040D7DF add eax,1
0040D7E2 mov dword ptr [ebp-8],eax
0040D7E5 mov ecx,dword ptr [ebp-4]
0040D7E8 add ecx,1
0040D7EB mov dword ptr [ebp-4],ecx
0040D7EE test edx,edx ;大看这一点就会明白!
0040D7F0 je main+64h (0040d7f4)
0040D7F2 jmp main+3Ch (0040d7cc)
sakaer
2007-03-15
打赏
举报
回复
楼上的。。。还有第六条。
main函数,应该是int类型。
并返回0。
用void类型也可以吧。。应该没有什么大关系
我觉得那个while是不是可以这样写:
while((*p2++ = *p1++) != NULL)
呵呵
iamcaicainiao
2007-03-15
打赏
举报
回复
还有第六条。
main函数,应该是int类型。
并返回0。
iamcaicainiao
2007-03-15
打赏
举报
回复
第二 条,同第一条
双引号问题
printf("%s\n", p2);
第三条“%sn”,应该是"%s\n"吧
第四条,缺少必要头文件。
第五条, while(*p2++ = *p1++);
p2不断指向尾巴了。从尾巴开始输出,啥也没有啊。
所以,得保留p2的开始位置。
#include <malloc.h>
#include <memory.h>
#include <iostream.h>
int main()
{
char *p1="name";
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
char * p3 = p2;
while(*p2++ = *p1++);
p2 = p3;
printf("%s\n", p2);
return 0;
}
iamcaicainiao
2007-03-15
打赏
举报
回复
第一条:char *p1="name";
楼主你那个似乎是中文的双引号啊,要用英文下输入的双引号。
0黄瓜0
2007-03-14
打赏
举报
回复
while(*p2++ = *p1++);//p2在不断的修改自已
printf(“%sn”,p2);//最后输出时p2已指向串后,自然输出不对
OpenHero
2007-03-14
打赏
举报
回复
拷贝越界
lei001
2007-03-14
打赏
举报
回复
拷贝时越界了
main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while((*p2++ = *p1++)&&(*p1!='\0'));
printf(“%sn”,p2);
}
Selenium点击无响应?八大解决方案与深度排查指南
在Web自动化测试与数据抓取中,元素定位与交互是核心基础。其原理在于通过浏览器驱动模拟用户操作,与页面DOM及JavaScript事件机制进行通信。这项技术的价值在于实现流程自动化、提升测试效率与数据采集的可靠性。然而,在实际工程实践中,尤其是在处理现代动态Web应用时,常会遇到元素定位成功但点击无响应的棘手问题。这通常涉及元素状态、事件监听、异步加载等复杂场景。本文聚焦Selenium自动化测试中的点击失效难题,系统剖析了其根源,并提供了从强化等待策略、执行JavaScript点击到使用ActionCha
Selenium模拟用户操作实战:从环境配置到稳定运行的完整指南
Web自动化测试是软件质量保障体系中的重要环节,它通过脚本驱动真实浏览器,复现用户点击、输入、滚动等操作,从而验证端到端业务流程的完整性。其核心原理在于利用浏览器驱动协议与渲染引擎交互,因此元素定位、等待策略和浏览器环境控制成为影响脚本稳定性的关键技术点。在实际工程中,Selenium作为主流的开源工具,能够覆盖回归测试、跨系统数据录入等场景,但也面临元素难定位、时序难控制、弹窗与多窗口切换复杂等挑战。为提升自动化脚本的可用性,需要从模拟真实用户行为出发,结合显式等待、页面对象模型、行为仿真等手段,让脚本从
滑动验证码破解实战:从Selenium硬伤到OpenCV轨迹模拟的完整方案
滑动验证码是Web自动化测试中最常见的拦路虎,其本质并非简单判断缺口是否对齐,而是通过轨迹曲线、浏览器环境可信度与前后端双重校验来识别机器行为。Selenium因navigator.webdriver标记、合成事件isTrusted属性以及规律性操作时序等天然缺陷,在遇到滑块时极易暴露。要突破这一壁垒,需从元素定位、缺口识别、轨迹生成和环境对抗四个子任务入手。利用OpenCV模板匹配定位缺口坐标,结合物理加速度模型生成仿人拖动轨迹,并通过CDP注入与启动参数削弱自动化特征,即可系统化提升验证通过率。该方案适
高校如何通过数据分析提升技术转移转化率?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
计及需求侧响应日前、日内两阶段鲁棒备用优化(Matlab代码实现)
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化问题,提出了一种基于数据驱动的两阶段分布鲁棒优化方法,结合1-范数和∞-范数构造不确定性集合,有效刻画风电、光伏出力及负荷等多重不确定因素的波动特性。研究构建了电热综合能源系统的联合优化模型,通过协调日前调度计划与日内实时调整,充分发挥需求侧响应资源的灵活调节能力,提升系统在不确定性环境下的备用充裕性与运行鲁棒性,并采用Matlab进行建模与仿真验证,结果表明该方法在保障系统安全的同时显著改善了经济性。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事新型电力系统调度、综合能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于高比例可再生能源接入背景下电力系统备用容量的优化配置;②为综合能源系统在多重不确定性下的鲁棒调度提供决策支持;③支撑需求侧资源参与系统辅助服务的机制设计与仿真验证,推动源荷互动协调发展。; 阅读建议:建议读者结合Matlab代码深入理解两阶段鲁棒优化的建模过程,重点关注不确定性集构建、鲁棒约束转化及C&CG等求解算法的实现细节,可进一步拓展至其他分布鲁棒优化形式或耦合更多能源形式的综合能源系统场景。
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章