这题怎么做?
编写一个函数alloc,用来在内存区新开一个连续的空间。此函数的返回值是一个指针,指向新开辟的连续空间的起始地址。再写一个函数free,将地址p开始的各单元释放。
上面的函数是不是 CALLOC ?
如果是就可以看看这个:
#include <stdio.h>
#include <stdlib.h>
void main()
{
struct std
{
int num;
char *name;
char sex;
};
struct std *p;
p = (struct std *)calloc(2,sizeof(struct std));
p->num = 102;
p->name = "zhang";
p->sex ='M';
(p+1)->num = 103;
(p+1)->name = "huang";
(p+1)->sex = 'W';
int i;
for(i = 0; i<2; i++)
printf("Number = %d\nName = %s\nSex = %c\n",(p+i)->num,(p+i)->name,(p+i)->sex);
free(p);
}