C语言中初始化内存的方法

不知道大家在用vs的时候,有没有试过出现“烫烫烫烫...”,出现的主要原因是这个软件在初始化内存的时候默认对于未初始化的栈内存全部填成 0xcc,对应于汉字字符串看就是 烫烫烫烫……,对于未初始化的堆(new)内存全部填成 0xcd,对应于汉字字符串看就是 屯屯屯屯……。而一般使用内存前要重置内存中的内容,一般我们使用memset函数




char buf[1024];
//在使用这个地址的时候我们需要清空内存的信息,一般有两种办法,一种是运行期间完成,一种是编译期间完成:

//运行期间
memset(buf, 0, sizeof(buf));

//在编译期间就完成了
char buf[1024] = {0};
推荐使用 = {0} 这种形式,效率较高。
在最开始学习数据结构和算法的时候,因为C语言基础不好,又没有回顾,在写数据结构的时候经常遇到数组不为空的状况,后来重新补充这部分内容,才发现原来是这么低级的错误。


 
 

原文:https://www.jianshu.com/p/7b184fcd880b

猜你喜欢

转载自www.cnblogs.com/code1992/p/12746410.html
今日推荐