嵌入式习题部分 进度到“norflash与nandflash的区别”
主要阅读了动态内存分配的问题,在其他博客的文章中,对其总结如下:
1、主要使用使用的函数:malloc,calloc,free,realloc。
void *malloc(size_t size) //————–>返回的是一个通用类型的指针,根据需要去进行强转;
void *calloc(size_t num_elements,size_t element_size);
void *realloc(void *ptr,size_t new_size);
2、动态内存的特点:malloc与free必须成对使用;
malloc分配的内存未初始化;
calloc分配的内存已初始化;
realloc动态对已分配的内存进行操作(增大或缩小);
3、realloc特殊赋值与malloc和free的关系:
当ptr=null时,相当于malloc函数,当new_size=0时,相当于free。
4、动态内存的常见错误:
段错误:①使用未分配成功的内存;
②引用分配成功但未初始化的内存;
③内存分配成功并已初始化,但操作越界;
④忘记释放内存,造成内存泄漏;
⑤释放内存之后却继续使用这一块内存