文章目录
- 前言
- 一、内存管理&编程题
-
- 1、由gcc编译的C语言程序占用的内存分为哪几个部分?
- 2、大小端
- 3、全局变量和局部变量的区别?
- 4、以下程序中,主函数能否成功申请到内存空间?
- 5、请问运行下面的 Test() 函数会有什么样的后果?
- 6、 请问运行下面的 Test() 函数会有什么样的后果?
- 7、请问运行下面的 Test() 函数会有什么样的后果?
- 8、在C语言中 memcpy 和 memmove 是一样的吗?
- 9、malloc 的底层是如何实现的?
- 10、在1G内存的计算机中能否通过malloc申请大于1G的内存?为什么?
- 11、内存泄漏是什么?
- 12、内存溢出是什么?与内存泄漏有何关系?
- 13、堆栈溢出一般是由什么原因导致的?
- 14、编译和链接有什么不同?(如对外部符号的处理)
- 15、一个32位的指针,如何按8字节的整数倍向下对齐,请写出代码。
- 16、gcc 优化代码执行速度的编译选项是?
- 17、new 和 malloc 有什么区别?
- 18、指针与引用的区别?
前言
记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第四篇。
一、内存管理&编程题
1、由gcc编译的C语言程序占用的内存分为哪几个部分?
2、大小端
小端:一个数据的低位字节数据存储在低地址
大端:一个数据的高位字节数据存储在低地址
例如:int a=0x12345678; //a首地址为0x200,大端存储格式如下:
数据 | 0x12 | 0x34 | 0x56 | 0x78 |
---|---|---|---|---|
地址 | 0x200 | 0x201 | 0x202 |