阿里C语言面试题及详细答案.docxVIP

  • 1
  • 0
  • 约1.1万字
  • 约 12页
  • 2026-06-06 发布于河北
  • 举报

阿里C语言面试题及详细答案

一、基础核心题(必考,考察基本功)

1.题目:说说C语言中malloc、calloc、realloc的区别,以及使用时必须注意的点?

详细答案:这三个都是动态内存分配函数,核心区别集中在初始化和内存调整上,实际开发中(比如阿里后台开发、嵌入式场景)经常用来分配缓冲区,踩坑点主要在内存泄漏和野指针。

1.区别:

-malloc:最基础,原型void*malloc(size_tsize),只分配指定大小(size字节)的内存,不初始化,内存里是随机的垃圾值;比如malloc(10),就分配10字节,里面的数据是乱的。

-calloc:原型void*calloc(size_tnmemb,size_tsize),分配nmemb个size字节的内存,并且会把所有字节初始化为0;比如calloc(5,2),分配10字节,每个字节都是0,适合需要初始化的数组、结构体场景。

-realloc:原型void*realloc(void*ptr,size_tsize),用于调整已分配内存的大小,ptr是之前malloc/calloc分配的指针;如果ptr为NULL,等同于malloc(size);如果新size比原内存大,会尝试在原内存后扩容,扩容失败则重新分配一块新内存,把原数据拷贝过去,同时释放原内存。

2.必须注意的点(阿里面试官常追

文档评论(0)

1亿VIP精品文档

相关文档