malloc与free的凝问
//定义结构体
struct Test{
char str[100];
int a;
};
//申请N个Test内存空间,并返回该内存首地址。
struct test * createTest(int n){
struct Test * test = (struct Test *) malloc(sizeof(struct Test) * n);
return test;
}
main(){
struct Test * test = createTest(5);
for(int i =0;i < 5;i++){
printf("%d\t\t%s",test->a,test->str);
}
//释放test所占用的内存空间。
free(test);
}
凝问是:test的内存申请是在createTest函数中傅malloc申请的,但是内存的释放是在main函数(也有可能是在其它非main函数和非createTest)中调用free释放的,这样做是否正确。还是说在createTest函数中申请,一定要在createTest函数中释放。