p=(int*)malloc(sizeof(int)*(n+1))是什么意思

2025-03-04 05:51:37
推荐回答(4个)
回答1:

malloc 是内存分配

分配的空间以字节为单位

sizeof(int)*(n+1) 是求一个字节数的过程

sizeof(int)就是int类型的字节数,再*(n+1),其实就是连续的n+1个int型数的空间所含的字节数

前面二者合起来就是分配了大小为n+1个int型的空间所含的字节数

此时(int*)是强制转化为int型的指针,所以p就是一个指向这连续n+1个int的int指针。

另外这种分配内存的方式是C语言中实现的,为什么不直接指明字节数,而用sizeof(int)这种运算是因为对于不同的计算机,对于int的分配空间不一定相同,这样有一定的移值性。不过好像没有弄C 了,现在都用java,所以不知道还对不对呵,印象中是这样。

回答2:

sizeof就是空间大小嘛,malloc就是分配空间的意思,int整形。你自己试着理解完了在软件上尝试,初学者这样入门也挺不错的。

回答3:

就是给p分配n+1个整数空间
相当于 p = new int(n+1);即p为n+1大小的整数数组!

回答4:

就是P指向一个大小为(n+1)×int的空间
P指向第一个单元