社区
C语言
帖子详情
字符简单问题
LinJie98
Apache 顶级项目 Flink中文文档翻译贡献者
2017-01-03 09:50:09
为什么77题答案是有可能导致数据错误,而不是B选项这个答案
...全文
291
7
打赏
收藏
字符简单问题
为什么77题答案是有可能导致数据错误,而不是B选项这个答案
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2017-01-05
打赏
举报
回复
其实电脑开机后物理内存的每个字节都是可读写的,从来不会因为所谓的new、delete或malloc、free而被创建、销毁。区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。操作系统管理内存的粒度不是字节而是页,一页通常为4KB。
自信男孩
2017-01-05
打赏
举报
回复
自信男孩
2017-01-05
打赏
举报
回复
我的头都转的脖子疼了。终于看明白题目了。 原因是越界了,建议使用strncpy strncpy(s1, s2, strlen(s1));有多少空间就能装多少字符,多了装不了溢出了。溢出没关系,不要溢到只读区域,不然就会出现段错误。所以,小心一些,strncpy比strcpy安全一些了。 不是所有情况都会出现段错误,但是溢出是必定的,你把这两个变量定义成全局的或者在栈上申请空间试试。有可能会拷贝成功。但是不建议这样做,只是作为一个尝试。
neunap
2017-01-04
打赏
举报
回复
引用 楼主 w_linux 的回复:
为什么77题答案是有可能导致数据错误,而不是B选项这个答案
用隐式长度定义数组,则必须给数组赋初始值,这样编译器会根据实际后面数值长度来给数组定长。 char s1[] = "That girl"; // 加上\0共10字节 char s2[] = "is beatiful"; // 加上\0共12字节 把s2的内容复制到s1中,导致数组越界,出现不可预测的问题。
小灸舞
版主
2017-01-04
打赏
举报
回复
字符数组越界是未定义行为
幻夢之葉
2017-01-03
打赏
举报
回复
因为后者长度大于前者,后者复制到前者会跃出边界 可能导致程序崩溃,也可能导致不仅仅是s1中的数据被篡改 这个行为涉及到修改了别的内存
孙建飞的博客
2017-01-03
打赏
举报
回复
s1的长度未知,所以会导致数据错误。
【C语言】一个删除
字符
串中的指定
字符
的
简单
函数
本题要求实现一个删除
字符
串中的指定
字符
的
简单
函数。 函数接口定义: void delchar( char *str, char c ); 其中char *str是传入的
字符
串,c是待删除的
字符
。函数delchar的功能是将
字符
串str中出现的所有c
字符
删除...
java
字符
串加密_Java
简单
加密
字符
串
1 设计思想该
问题
要求输入一个
字符
串,然后把这个
字符
串的每一个
字符
加4,得到新的
字符
串。我们设计一个函数,传入参数sring str,首先我们利用String类的方法toCharArray()把
字符
串转换为
字符
数组,然后把每个
字符
...
C++
字符
串与
字符
数组 详解
在C++中,有两种类型的
字符
串表示形式: C-风格
字符
串 C++引入的string类 C-风格
字符
串 C 风格的
字符
串起源于 C 语言,并在 C++ 中继续得到支持。
字符
串实际上是使用 null
字符
‘\0’ 终止的一维
字符
数组。...
C语言中
字符
型(char)的
简单
使用
C语言中
字符
型(char)的
简单
使用 刚接触C语言不久,在这记录下自己的一些学习心得。今天主要是在敲代码时遇到了一个小
问题
,如图: 应该是个比较
简单
的编程题。在我的想法中,应该使用循环逐个读入由A至Z的每个...
实现一个删除
字符
串中的指定
字符
的
简单
函数
因为是要删除
字符
串中的指定函数,所以要定义出
字符
串以及
字符
,即str[]和c。函数接口为void delchar(char*str,char c); #include<stdio.h> int main() { void delchar(char*str,char c); char str[],c;...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章