解析 最佳答案 a,b,c应该定义成int *型用malloc函数动态分配一个整型的内存空间,即4或2个字节,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间.希望能够帮到您.结果一 题目 a=b=c=(int*)malloc(sizeof(int))是什么意思? 答案 a,...
p = (int*)malloc(sizeof(int)); (1)malloc的返回是void*,如果我们写成了:p=malloc(sizeof(int));间接的说明了(将void转化给了int*,这不合理) (2)malloc的实参是sizeof(int),用于指明一个整型数据需要的大小,如果我们写成p=(int*)malloc(1),那么可以看出:只是申请了一个一个字节大小的空间。 (3)ma...
malloc是申请内存空间,参数是字节数,本帖语句是标准写法,参数申请的字节数=变量大小*变量数量,变量为int类型,就是每个int的字节数 乘以 需要的int个数
int * p = (int *)malloc(sizeof(int)); 这条语句 应该怎么理解啊 对于动态分配我还不是太理解 。从内存角度他是怎么分配的?malloc()函数的作用是分配制定字节数的空间sizeof()为单目运算 求出对应类型所占用的字节数(类型名)为单目运算 为强制类型转换要注意的是 malloce函数申请得到的空间是无类型的空间...
intn =10;int*p = (int*)malloc(n *sizeof(int));//建立可以存放是个int型数据的数组 解释: 1、malloc()函数的形参是要分配的字节数,注意是字节数,不是单元数。 2、malloc函数返回的是一个无类型的首地址,因此必须在malloc函数前加上类型强转,转换为自己需要的数据类型 ...
其中,malloc()是系统动态分配内存的函数,其函数原型为:void * malloc( int size );void *表示函数返回值为任意类型,即malloc可为任意类型数据分配内存空间 参数size是指分配的内存单元字节数 接下来就可以通过指针变量p1进行数据操作了,如:*p1 = 10 ;注意,当p1未分配内存地址时(称为野指针)...
(1)malloc的返回是void*,如果我们写成了:p=malloc(sizeof(int));间接的说明了(将void转化给了int*,这不合理) (2)malloc的实参是sizeof(int),用于指明一个整型数据需要的大小,如果我们写成p=(int*)malloc(1),那么可以看出:只是申请了一个一个字节大小的空间。
前面的(int *)是用于强制类型转换,由于malloc()返回值是(void *)类型的,有一些编译器不会自动将其转换为用户定义的指针变量的类型(如VC++6.0等),在这种情况下,如果不加强制类型转换(或者强制转换的类型不一致),就会导致编译器报错。
要理解两个 * 是不一样的 第一个:sizeof(int) 就是int占的字节数,也就是4,后面的 * 是乘号,也就是4*5=20 这句话的意思是动态分配 i 个,也就是5个 int 类型大小的空间给a,相当于int a[5] ,当然两者不能等价 第二个:sizeof(int*) 就是int*的字节数,指针类型的大小是4,...
就是分配 n个int空间 平时我们使用数组, int a[3];编译器会自动为我们分配3个空间,如果我们想自己分配空间,也就是动态分配时:int *p=(int*)malloc(sizeof(int)*3);也是分配三个空间。