bycj.net
当前位置:首页 >> C语言p1=(int *)mAlloC(sizEoF(int))作用与意思是什么 >>

C语言p1=(int *)mAlloC(sizEoF(int))作用与意思是什么

malloc是向系统申请内存空间的函数,返回值是void* 很明显,p1一定是定义为int*p1;的,所以强制malloc返回的指针更改类型为int* malloc的参数说明要申请多少字节数据,这里要申请一个连续5个整型的数据区,所以用5乘以每个int占用的字节数,即5*sizeof(int)

(int*)表示强制转换为指向int类型的指针,因为malloc()返回的是void*,这个是不带类型的指针

int *p;//定义一个指向整型的指针变量 p=(int*)malloc(sizeof(int));/*建立(动态申请)一块内存空间,建立的内存空间为一个整型变量的长度,并把建立的空间地址转化成指向整型的指针赋值给前面的整型指针变量p*/ 如果这块动态内存不释放,

int *a=(int *)malloc(n*sizeof(int)); 表示定义一个int类型的指针变量a,并申请n*sizeof(int)个字节(即4*n个字节)的存储空间.malloc是在C语言中是一个申请内存单元的函数.函数原型:void *malloc(unsigned size); 功 能:分配size个字节的内存

(int *)表示,程序把malloc的返回值强制转换成整型的类型.

动态申请一块内存,长度为一个int的字节数,视操作系统16/32/64而定.内存首地址保存在变量 p 中.

int *p 只是定义了一个指向整型数据单元的指针 p = (int *) malloc (sizeof(int)) 定义的指针同时分配了该计算机一个整型单元大小的空间,由p指向

首先sizeof计算(int)所占的字节数,然后malloc分配这么多字节数的空间,然后s应该应该是int型.所以要转换成(int *)型

应该是:int *a; a=(int *)malloc(n*sizeof(int)); 这个是动态内存分配 声明一个int型指针a,然后申请n个int型大小的区域(不一定是连续的区域,大部情况是链式区域),把这个内存区域的首地址赋值给指针变量a,这样就可以通过a来操纵申请的内存区域.

前面的 (int *)是强制转换,后面的malloc(sizeof(int)); 是在内存中创建一个连续长度为sizeof(int)的区间之后再返回该区间的首地址给int * p

相关文档
nczl.net | zdhh.net | hyqd.net | sgdd.net | pznk.net | 网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com