当前位置: 首页 > news >正文

做服装招聘的网站网络营销专家

做服装招聘的网站,网络营销专家,如何做h5 网站,做玩游戏任务得q币的网站常见的 C/C 段错误及对策 一、指针没有指向一块合法的内存 定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。这里举几个比较隐蔽的例子。 结构体成员指针未初始化;没有为结构体指针分配足够的内存;函数的…
常见的 C/C++ 段错误及对策
一、指针没有指向一块合法的内存

定义了指针变量,但是没有为指针分配内存,即指针没有指向一块合法的内存。这里举几个比较隐蔽的例子。

  • 结构体成员指针未初始化;
  • 没有为结构体指针分配足够的内存;
  • 函数的入口校验,一般在函数入口处使用assert(NULL != p)对参数进行校验。assert 是一个宏,而不是函数;
三、内存分配成功,但并未初始化
memset(a,0,sizeof(a));

memset 函数有三个参数,第一个是要被设置的内存起始地址;第二个参数是要被设置的值;第三个参数是要被设置的内存大小。

至于指针变量如果未被初始化,会导致if 语句或assert 宏校验失败。

四、内存越界

内存分配成功,且已经初始化,但是操作越过了内存的边界。这种错误经常是由于操作数组或指针时出现“多1”或“少1”。比如:

int a[10] = {0};
for (i=0; i<=10; i++)
{a[i] = i;
}

所以,for 循环的循环变量一定要使用半开半闭的区间,而且如果不是特殊情况,循环变量尽量从0 开始。

五、内存泄漏

用malloc 函数申请0 字节内存

另外还有一个问题:用malloc 函数申请0 字节内存会返回NULL 指针吗?

可以测试一下,也可以去查找关于malloc 函数的说明文档。申请0 字节内存,函数并不返回NULL,而是返回一个正常的内存地址。但是你却无法使用这块大小为0 的内存。这好尺子上的某个刻度,刻度本身并没有长度,只有某两个刻度一起才能量出长度。对于这一点一定要小心,因为这时候if(NULL != p)语句校验将不起作用

内存释放

malloc 两次只free 一次会内存泄漏;malloc 一次free 两次肯定会出错。也就是说,在程序中malloc 的使用次数一定要和free 相等,否则必有错误。这种错误主要发生在循环使用malloc 函数时,往往把malloc 和free 次数弄错了。这里留个 练习:

内存释放之后

释放完块内存之后,没有把指针置NULL,这个指针就成为了“野指针”,也有书叫“悬垂指针”。这是很危险的,而且也是经常出错的地方。所以一定要记住一条:free 完之后,一定要给指针置NULL。

六、内存已经被释放了,但是继续通过指针来使用

这里一般有三种情况:

第一种:就是上面所说的,free(p)之后,继续通过p 指针来访问内存。解决的办法就是给p 置NULL。

第二种:函数返回栈内存。这是初学者最容易犯的错误。比如在函数内部定义了一个数组,却用return 语句返回指向该数组的指针。解决的办法就是弄明白栈上变量的生命周期。

http://www.15wanjia.com/news/24912.html

相关文章:

  • 宜兴公司做网站软文推广渠道
  • 网站建设用户画像例子百度app免费下载安装最新版
  • 龙泉市建设局网站山东泰安网络推广
  • 制作图片模板网站seo是什么
  • 做网站 图片素材怎么找如何使用免费b站推广网站
  • 成都网站建设公司排名营销qq下载
  • 网站建设 财务归类桂林市天气预报
  • 怎么做前端网站百度竞价返点开户
  • 建设厅网站的无法打印国内推广平台
  • 中小型教育网站的开发与建设app开发制作
  • 网站根目录相对路径杭州百度推广代理商
  • 营销型网站设计案例教育培训网
  • 地方政府网站建设南昌seo报价
  • 推广网站怎样阻止注册网站需要多少钱?
  • 在闲鱼可以做网站吗网站收录排名
  • 旅游网站怎么做的厦门网页搜索排名提升
  • 咸阳网站制作建设软件外包平台
  • 满堂彩谁做的网站优化快速排名教程
  • 制作网站服务公司正规赚佣金的平台
  • 网站建设 可行性网络营销公司是做什么的
  • 石林彝族网站建设百度广告公司联系方式
  • 公司网站开发类属什么费用制作网站
  • 网站备案中打不开网站排名优化首页
  • 专门做捷径网站seo排名优化公司价格
  • 绵阳做网站多少钱网络营销公司排名
  • 网站中flash怎么做长春seo排名收费
  • 三否网站网购网站十大排名
  • 哪家做网站好的搜索引擎营销的6种方式
  • 有专门做牙膏的网站吗阿里大数据分析平台
  • 网站建设贵阳电子商务营销策略有哪些