C语言中strcpy()的问题?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

C语言中strcpy()的问题?

2016-05-30 18:12:33 2156 5

screenshot
刚接触C语言,代码和执行结果如图。
疑问:
1.b 定义的长度是3,为什么可以放"helloworld"这样长度大于3的字符串?
2.为什么a会少了前面3个字符?

取消 提交回答
全部回答(5)
  • 游客x4uu57rrcwjuo
    2020-03-19 10:51:19

    内存越界了,默认会拷贝所有的字符串

    0 0
  • 一生有你llx
    2019-07-17 19:20:54

    内存越界了,默认会拷贝所有的字符串

    0 0
  • nothingfinal
    2019-07-17 19:20:54

    内存越界,使用strcpy_s会提示错误信息

    0 0
  • xumaojun
    2019-07-17 19:20:54

    内存越界,使用安全函数strcpy_s会提示错误信息

    0 0
  • 杨冬芳
    2019-07-17 19:20:54

    在内存中两个数组的内存分配应该是这样的:
    '?' '?' '?' 'h' 'e' 'l' 'l' 'o' 'w' 'o' 'r' 'l' 'd' '0' (数组b没有初始化所以内容是不确定的)
    strcpy不知道这个字符数组a有多长,只知道一段字符串遇到'0'就算结束,于是把a全部复制到b了:
    'h' 'e' 'l' 'l' 'o' 'w' 'o' 'r' 'l' 'd' '0' 'l' 'd' '0'

    c语言有个观点(哲学?):程序员知道自己正在做什么。于是c中有些地方就没有做安全性检查了。然而后来发现,许多程序员并不清楚自己在做什么,于是就有了strcpy_s。

    补充下,两个数组的位置是由编译器决定的。比如我用gcc编译的结果是,a、b数组都为helloworld。

    0 0
添加回答
相关问答

17

回答

教你如何简单将OSS bucket挂载成为阿里云ECS服务器本地盘

梦丫头 2017-02-17 14:01:12 37992浏览量 回答数 17

5

回答

【阿里云】linux服务器安装nginx配置多个站点两种方法

自娱自乐 2014-03-29 14:53:12 22446浏览量 回答数 5

9

回答

阿里云ECS安装虚拟主机系统DirectAdmin开心版百分百成功的方法

hxs 2014-05-26 20:05:30 34511浏览量 回答数 9

10

回答

AMH5.0安装脚本顺便提醒是收费的每月5元。

是非良人 2014-08-31 15:13:27 20888浏览量 回答数 10

8

回答

阿里云服务器内网传输使用指南

任逍遥 2013-03-22 00:05:42 30790浏览量 回答数 8

3

回答

2020年05月编程排行榜-C语言继2015年,重新成为编程排行榜第一名

huc_逆天 2020-05-06 13:43:42 35600浏览量 回答数 3

4

回答

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 21312浏览量 回答数 4

14

回答

C语言基础 【精品问答合集】

我是管理员 2018-07-13 15:37:00 26690浏览量 回答数 14

10

回答

阿里云centos静默安装oracle

美味的小鱼 2014-08-12 14:23:44 30654浏览量 回答数 10

5

回答

C语言算法 【精品问答合集】

我是管理员 2018-07-13 15:51:28 27087浏览量 回答数 5
+关注
杨冬芳
IT从业
1
文章
9167
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载