当前位置: 代码迷 >> C语言 >> 请教内存分配问题
  详细解决方案

请教内存分配问题

热度:356   发布时间:2006-09-05 18:33:05.0
请教内存分配问题
malloc()这个函数和calloc()的函数到底有什么区别,都是动态分配的.
请指教!
搜索更多相关的解决方案: 内存  分配问题  

----------------解决方案--------------------------------------------------------
malloc:分配内存。
calloc:分配内存,并把分配的内存全都初始化为零值。
----------------解决方案--------------------------------------------------------

#include<malloc.h>
#include<stdio.h>
struct element
{
int number;
element *point;
};
void main()
{
int i=0,j;
element *curret;
curret=(element*)(calloc(10,sizeof(element)));

if(curret)
printf("Memory Allocated at: %x",curret);//x是16进制
else
printf("Not Enough Memory!\n");


while(i<10)
{
printf("请输入数据:");
scanf("%d",&j);
curret->number=j;
i++;
curret=curret->point;
}
}
为什么这样写不行呢?这个calloc(),是分配10个大小为element的空间,也就是相当与生成了10个动态的element,头指针是curret:
while(i<10)
{
printf("请输入数据:");
scanf("%d",&j);
curret->number=j;
i++;
curret=curret->point;
}
还是说分配了10*element大小的空间,他只有1个element,用curret指向他.


----------------解决方案--------------------------------------------------------
有人回答吗?我觉得是前者
----------------解决方案--------------------------------------------------------
curret=(element *)calloc(10,sizeof(element));

[此贴子已经被作者于2006-9-5 22:45:06编辑过]



----------------解决方案--------------------------------------------------------
  相关解决方案