社区
C++ 语言
帖子详情
char* str = "abcd"; char* tmp; strcpy(tmp, str); 这样的语句是不是不太好?
william624
2017-12-06 06:52:04
因为在调用strcpy之前没有为tmp开辟空间。
...全文
166
3
打赏
收藏
char* str = "abcd"; char* tmp; strcpy(tmp, str); 这样的语句是不是不太好?
因为在调用strcpy之前没有为tmp开辟空间。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2017-12-07
打赏
举报
回复
其实电脑开机后物理内存的每个字节中都有值且都是可读写的,从来不会因为所谓的new、delete或malloc、free而被创建、销毁。区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。操作系统管理内存的粒度不是字节而是页,一页通常为4KB。
paschen
版主
2017-12-06
打赏
举报
回复
没有初始tmp指针,该指针是一个随机值,指向一个随机的位置,也就是说的野指针,使用可能导致程序崩溃
ooolinux
2017-12-06
打赏
举报
回复
除非故意利用缓冲区溢出搞恶意代码。
大尾巴猫
2017-12-06
打赏
举报
回复
根本就是错的,不是好不好的问题。原因你自己也说了,没给指针开辟空间
字符串赋值给字符指针(
char
*a="hello")的正确理解方式
对于
语句
char
*a="hello"; 对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*a"所指向的地址。但正解是:声明了一个字符指针后,并用字符串常量的第一个字符的地址赋值给指针变量a。即正确顺序是: 1.分配内存给字符指针; 2.分配内存给字符串; 3.将字符串首地址赋值给字符指针; 这里...
字符串赋值给字符指针(
char
*a=“hello“)的正确理解方式
则将会从字符数组的首地址开始复制,如果字符数组中明确指定了'\0'元素,则会在'\0'处停止,而若没有'\0'元素,则程序可能会不停的复制,直到在程序的内存中碰到'\0',这样可能会得到不希望的结果。//这种方式由系统自动给该字符指针指定了一个内存中的位置,并且该位置的字符数组为{'a', 'b', 'c', 'd', 'e', 'd', '\0'};因为定义的是一个字符数组,所以就相当于定义了一些空间来存放"abc",而又因为字符数组就是把字符一个一个地存放的,所以编译器把这个
语句
解析为。
C语言 字符函数、字符串函数和内存操作函数
今天我们来介绍处理字符和字符串的库函数的使用以及一些函数的模拟。会使用这些库函数,再写程序的过程中也会更灵活、更方便。下面我们一起学习。 求字符串长度
str
len
XiyouLinuxgroup 2015 2017 2018面试题
先从2017年写
C语言面试题大汇总jie
static有什么用途?(请至少说明两种) 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 2) 不存在指向空值的引用,但是存在指向空值的指针。 8. 描述实时系统的基本特性 在特定时间内完成特定的任务,实时性与可靠性 9. 全局变量和局部变量在内存中是否有区别?如果有,是什么...
C++ 语言
64,644
社区成员
250,475
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章