p=(int*)malloc(sizeof(int)*(n+1))是什么意思 20
4个回答
展开全部
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,所以不知道还对不对呵,印象中是这样。
分配的空间以字节为单位
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,所以不知道还对不对呵,印象中是这样。
展开全部
sizeof就是空间大小嘛,malloc就是分配空间的意思,int整形。你自己试着理解完了在软件上尝试,初学者这样入门也挺不错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是给p分配n+1个整数空间
相当于 p = new int(n+1);即p为n+1大小的整数数组!
相当于 p = new int(n+1);即p为n+1大小的整数数组!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是P指向一个大小为(n+1)×int的空间
P指向第一个单元
P指向第一个单元
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询