搜索

C语言中动态内存分配的问题 int p=(int)malloc(8) 这样理解对

gecimao 发表于 2019-06-27 01:05 | 查看: | 回复:

  这样理解对不对:(int*)表示将动态分配的8个字节的内存空间类型强制转换为2个指向int的指针类型

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  (int*)表示将动态分配的8个字节的内存空间类型强制转换为 1 个指向int的指针类型

  1个指针,指针指向的申请的内存空间是8个字节,虽然也可以访问这8个字节以外的空间,但这已经越界的行为了

  p是指向int类型的指针变量,只需4个字节,剩下的4个字节放在那儿没用?所以8最好改成4?

  int *p;这里定义指针变量p,不管你有没有对p赋值,这里就已经开辟了4个字节的空间来给指针变量p(不考虑编译器优化的话,并且假设对指针变量做4字节处理)

  malloc(8)这里不论你有没有将其返回值赋值给指针变量,都会从内存中申请8字节空间,除非人为释放或程序结束由系统回收,否则这八个字节的的空间一直被占用着

本文链接:http://hem-larm.com/dongtaicunchufenpei/821.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部