函数结束会自动释放未释放的动态内存吗?
如果函数申请了一块内存,而最后没有free掉,那么编译器会自动将这块内存free吗?
比如某版本《数据结构》书中,线性表的类型如下:
typedef struct{
int *elem;
int length;
.....
}Sqlist;
建立线性表操作
void CreatedSqlist(Sqlist*L){
L->elem=(int*)malloc(sizeof(int)*length);
.............
}
调用这个函数后,L->elem还会指向函数中分配的内存吗?
我自己用XCODE实验,结果是分配的内存被释放了了。
是不是编译器对于函数结束没有free的内存,会自动free,所以这种建立线性表方式是不行的。
求教!