关于malloc函数反复调用的问题
STREC * creat( double *s){ STREC *h,*p,*q; int i=0;
h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
while(i<N)
{ q=(STREC*)malloc(sizeof(STREC));
q->s=s[i]; i++; p->next=q; p=q;
}
p->next=0;
return h;
}
这是创建链表的一小段,相信大家都很熟悉,可是我有一个疑问
比如(sizeof(STREC))20字节,可是每次调用是不是都会重新分配地址,然后用了一个字节之后,经过while循环,然后再调用,再分配20个用1个……这样难道不是浪费内存吗