社区
C语言
帖子详情
为什么输出11
xddzccn
2006-12-02 12:00:47
char a[12]="hello world";
char *p;
char str_a[10];
p=str_a;
strcpy(p,a);
printf("the lengh is %d",strlen(p));
}
...全文
266
10
打赏
收藏
为什么输出11
char a[12]="hello world"; char *p; char str_a[10]; p=str_a; strcpy(p,a); printf("the lengh is %d",strlen(p)); }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CAIZHU
2006-12-02
打赏
举报
回复
#include<stdio.h>
#include<string.h>
void main()
{
char a[12]="hello world";
char *p;
char str_a[10];
p=str_a;
strcpy(p,a);
printf("%s",str_a);
printf("\n");
printf("the lengh is %d\n",strlen(p));
}
运行结果
hello world
the lengh is 11
危险 数据溢出
会覆盖其他的数据成员的
最好加给判断
如果strlen(p)>10 则返回错误
程序漏洞 就是缺乏判断引起的
wenbaby
2006-12-02
打赏
举报
回复
char str_a[10];
p=str_a;
strcpy(p,a);
____
这样用是很危险的.就算下面这样,结果也应该是11,但是是危险的.
char str_a[2];
p=str_a;
strcpy(p,a);
xddzccn
2006-12-02
打赏
举报
回复
受教了,
危险 数据溢出
会覆盖其他的数据成员的
我要是想知道它覆盖了哪些数据成员,要怎么弄啊
FairLu
2006-12-02
打赏
举报
回复
strcpy并不会检查数组是否越界。返回值是字符串长度(以'\0'结束)。
strcpy(p,a);//a是一个12字节的数组,字符串长度为11,所以调用strcpy之后,p所指向的字符串的长度11。
jixingzhong
2006-12-02
打赏
举报
回复
strlen 从指定的位置开始查找,一直到出现 \0 字符的字节数目。
它不考虑参数数组的长度,
可能小于该长度, 也可能大于该长度。
呵呵,
如果越界使用数组,
在一些编译器下是会出错的 ....
灰太狼
2006-12-02
打赏
举报
回复
C語言中使用指針一定要注意,很容易出現指針問題,我個人認為隻要是指針一定要malloc,否則會出現異想不到的結果。
lockhall
2006-12-02
打赏
举报
回复
p指向的是"hello world",所以strlen(p) == 11.
lockhall
2006-12-02
打赏
举报
回复
就楼主本身的程序,如果越界的话也不是因为str_a[10]的缘故.
因为p = str_a;只是将数组str_a[]的首地址赋给了指针p
而指针p的内存并未申请.
所以最好在定义了指针p后,申请内存:p =(char*)mall(100*sizeof(char));
alan001
2006-12-02
打赏
举报
回复
也可以用strncpy
whatsouta
2006-12-02
打赏
举报
回复
虽然会产生越界,但仍然执行strcpy完整个a串,只要对str_a紧接着的内存有W权限。
执行strlen时计算到\0结束,因此为11。
【深度学习平台】AutoDL显卡租用进阶技巧:文件传输与代码编辑优化方案
内容概要:本文介绍了在使用AutoDL显卡租用平台时的进阶技巧,重点涵盖文件传输与代码编辑的高效方法。文件传输部分详细讲解了本地与平台间的两种方式:通过FileZilla软件使用SFTP协议进行可视化传输,以及通过网页端直接上传下载文件,并对比了各自的适用场景;同时还介绍了平台内部多实例之间的文件中转传输方法,利用挂载目录实现同区域实例间高效共享文件,提升工作效率。在代码编辑方面,文章分析了传统终端编辑和本地上传覆盖的局限性,并推荐使用JupyterLab网页界面进行在线代码编辑,操作简便且支持实时保存,适合频繁修改的开发场景。 适合人群:使用AutoDL平台进行深度学习开发的研究人员或爱好者,尤其是有一定平台使用经验、希望提升效率的用户;适合需要频繁传输文件或多实例协同工作的开发者。 使用场景及目标:①在本地与实例间选择合适的文件传输方式以提高效率;②实现多个实例间的快速文件共享,减少重复上传;③优化代码编写流程,避免反复上传文件,提升开发便捷性与流畅度。
个人网-个人事务管理系统(已停止维护)
【源码预览】:https://renmaiwang.cn/s/8z6ns (最新版、最全版本)个人网-个人事务管理系统(已停止维护)
vpclattice-jvm-1.4.
11
.jar
vpclattice-jvm-1.4.
11
.jar
bananas.zip
Bananas Screen Sharing 是一款基于 WebRTC 技术的开源屏幕共享工具,专注于跨平台支持(Windows、macOS 和 Linux)和极简的用户体验。
Kite 前台页面是vue ssr服务端渲染、后台页面是react spa、服务层nodejs express、mysql编写的一套多权限文章、动态管理系统
【源码预览】:https://renmaiwang.cn/s/4ubzg (最新版、最全版本) Kite 前台页面是vue ssr服务端渲染、后台页面是react spa、服务层nodejs express、mysql编写的一套多权限文章、动态管理系统
C语言
70,026
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章