社区
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));
}
...全文
297
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写文章
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。
两步验证不是安全附加项,而是账户可用性性能基础设施
两步验证(2FA/TFA)本质上是提升数字身份系统可用性与恢复效率的关键性能机制,其原理在于通过增加认证维度显著压缩攻击成功概率,将账户失守后的平均修复时间从4.7小时降至接近零。技术价值体现在降低运维响应负载、减少人工救火频次、增强系统韧性;典型应用场景覆盖开发者账号(GitHub)、云平台(AWS)、密码管理器(LastPass)及企业权限体系。本文聚焦真实落地中的性能权衡——包括时间同步偏差、密钥备份断点、跨设备一致性等影响TFA可用性的核心因素,并基于Authy、YubiKey、TOTP等主流方案给
AI浏览器:从搜索工具到数字神经中枢的范式革命
AI浏览器不是传统浏览器的智能插件,而是基于意图识别、上下文记忆与任务执行重构的信息交互新范式。它突破关键词匹配的局限,依托本地大模型实现低延迟语义理解,将网页浏览升维为跨站点、跨应用、可执行的智能代理过程。其技术价值在于打通HTTP协议层的数据通路,赋予AI对全网内容的‘上帝视角’,支撑法律审阅、竞品比价、文献综述等高阶工作流自动化。作为当前最接近‘操作系统级AI入口’的终端形态,AI浏览器正成为知识工作者构建个人数字中枢的核心载体。
AI对话数据留存真相:你的每次输入都可能被永久记录
AI聊天工具并非‘用完即焚’的临时会话通道,而是一套默认持久化存储用户输入的数据工程系统。其底层原理在于训练闭环依赖真实交互、服务稳定性需完整日志溯源、合规要求赋予平台数据留存解释权。这种设计带来显著技术价值:支撑模型持续优化、保障响应可靠性、满足全球隐私法规形式要件。典型应用场景包括客服话术生成、代码辅助、法律文书起草等高频人机协作任务,但风险也同步嵌入——身份证号、企业报价单、医疗描述等敏感信息一旦输入,即进入可被自动化系统扫描、人工抽样审核、甚至法务强制调取的数据链路。理解‘默认留存’这一基础事实,是
API密钥精细化权限管理与审计日志实战指南
API密钥是现代应用开发中实现系统间通信与数据访问的核心凭证,其本质是身份验证与授权机制。其安全原理在于通过密钥对请求进行签名与验证,确保请求的完整性与来源可信。良好的密钥管理技术价值在于实现最小权限原则与操作可追溯性,能有效防范内部越权与外部攻击,是保障业务数据与资产安全的基石。在金融支付、电商交易等涉及敏感操作的应用场景中,**API密钥的精细化权限管理**与**审计日志查看**尤为重要。本文将以实战经验,系统阐述如何为类似Taotoken的平台设计密钥分治策略、配置IP白名单与速率限制,并利用审计日志
华为NAT技术说明-下载即用.zip
源码直接下载地址: https://pan.quark.cn/s/0c43ed5159df 本资源为HCDA认证培训教程,旨在面向准备参加HCDA考试的学员,或希望掌握TCP/IP基础、路由、交换技术、广域网、以太网技术基本原理以及华为通用路由平台VRP上实现的相关内容。具体涵盖的模块包括:Module 1-网络互联基础、Module 2-路由和路由协议基础与实现、Module 3-以太网交换技术基础与实现、Module 4-广域网技术基本原理与实现、Module 5-网络安全基础、Module 6-华为数通产品概述 ### 华为-NAT技术详解 #### 一、概述 NAT(Network Address Translation,网络地址转换)是一种在专用网络内部使用私有IP地址的情况下,使这些设备能够通过公有IP地址进行外部通信的技术手段。NAT技术在多种网络环境中得到广泛应用,特别是在企业网络中发挥着关键性作用。作为HCDA认证培训教程的一部分,本文档将系统性地阐述NAT的基础理论及其实现方法,并深入探讨在华为VRP平台上的具体应用场景。 #### 二、NAT处理流程 NAT处理流程主要包含两种类型:基于源IP地址和基于目的IP地址的处理模式。 ##### 1. 基于源IP地址的NAT处理 **1.1 一对一NO-PAT** 一对一NO-PAT即非端口地址转换(No-Port Address Translation),在这种模式下,一个私有IP地址对应一个公有IP地址,不涉及端口号的转换。当配置了NAT no-pat时,华为设备会为已配置的多通道协议产生的实际流量数据建立server-map表项。这种方式适用于需要固定公网IP的服务器等场景。 **1.2 多对一...
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章