a=(int *)malloc(sizeof(int)*n);和a=(int *)malloc(n*sizeof(int));意思一样吗?那个*号什么意思?

2025-04-13 20:51:26
推荐回答(5个)
回答1:

是一样的,第一个*是与int 合在一起,表示int 型的指针
第二个*是乘号,malloc的参数是要申请的内存的大小,sizeof(int) * n 或者 n*sizeof(int)的意思都是一样的,这句话的意思是 ,sizeof(int)=4,所以这句话的意思是申请一块 4*n 字节的内存空间,
这句话一般是用来申请动态int型数组的

回答2:

一个意思,malloc的意思是动态创建一个n*sizeof(int)字节的空间,创建好返回一个个void型的地址,而a是int型的指针变量,它只能指向整型的地址,所以要对它强制类型转换,即(int *)

回答3:

n*sizeof(int); // 这里的*表示乘法的意思
(int *) 表示整型指针的意思

回答4:

第一个*代表指针类型,第二个应该是代表乘号,所以二者应该是一样的

回答5:

一样的,后面的*、是乘法,顺序无关系