嵌入式系统开发人员C语言测试题内存管理_第1页
嵌入式系统开发人员C语言测试题内存管理_第2页
嵌入式系统开发人员C语言测试题内存管理_第3页
嵌入式系统开发人员C语言测试题内存管理_第4页
嵌入式系统开发人员C语言测试题内存管理_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、9.1 填空题(768) 下面程序的输出是_,为什么?char *ptr;if (ptr = (char *)malloc(0) = NULL) puts(Got a null pointer);else puts(Got a valid pointer);(769) 以下程序运行后的输出结果是_ 。main() char m; m=B+32; printf(%cn,m);已有定义如下:struct node int data; struct node *next; *p;以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。p = (struct

2、 node *)malloc(_);(770) 在绝对地址0 xXXXXXXXX上写入字符a的语句是_。unsigned char *p = (unsigned char *)0 xF000FF00;*p = a;9.2 问答与设计(771) 对下面程序段进行解释:typedef void (*lpFunction)(); lpFunction lpReset = (lpFunction)0 xF000FFF0;lpReset();(772) 结合编译优化原理,指出下面程序存在的问题并修改。int a,b,c;a = inWord(0 x100); / 读取I/O空间0 x100端口的内容存入

3、a变量b = a;a = inWord (0 x100); / 再次读取I/O空间0 x100端口的内容存入a变量c = a;(773) 以下为常见的内存错误,请分别给出解决措施:a. 内存分配未成功,却使用了它;b. 内存分配虽然成功,但是尚未初始化就引用它;c. 忘记了释放内存,造成内存泄露;d. 内存释放成功,却继续使用它。(774) 嵌入式系统中动态分配内存可能发生的问题有哪些?(775) 请分析下面代码,指出问题并改正:void GetMemory(T_S8 *p, T_S16 nNum) p = (T_S8 *)malloc(sizeof(T_S8) * nNum);void Te

4、st(void) T_S8 *str = NULL; GetMemory(str, 100); strcpy(str, hello);(776) 用malloc()函数更好还是用calloc()函数更好?(777) 说明变量存储在内存(memory)中的什么地方。(778) 什么是堆?(779) 什么是栈?(780) 什么是页抖动?(781) 怎样确定一块已分配的内存的大小?(782) free()函数是怎样知道要释放的内存块的大小的?(783) 用什么方法存储标志(flag)效率最高?(784) 8、16位和32位的数是怎样存储的?(785) 什么是高位字节和低位字节?(786) 请指出下面

5、代码的错误,并给出修改措施:T_S8 *itoa (T_S16 n) T_S8 retbuf20; sprintf(retbuf, %d, n); / 将整数转化为字符串 return retbuf; / 希望返回字符串(787) 请指出下面代码的错误,并给出修改措施:T_S8 *p = NULL;T_S16 nMemSize = 0;p = malloc(1024);nMemSize = sizeof(p); / 希望得到这个指针变量所分配的内存块的大小(788) 使用malloc()函数时,为什么要将其返回值强制转换成被赋值指针变量的数据类型?(789) 请写出malloc()的函数原型。

6、(790) 请设计内存检查方法,使其能够避免对访问被分配内存块之外的内存单元进行访问。(791) 如果对一个指针指向的内存块释放掉,随后又这块内存进行了再分配,因此,刚才被悬挂的指针又指向了新分配的内存块。请设计一种方案查出这类错误。(792) Test函数的运行结果如何?void GetMemory(char *p) p = (char *)malloc(100);void Test(void) char *str = NULL; GetMemory(str); strcpy(str, hello world); printf(str);(793) Test函数的运行结果如何?char *G

7、etMemory(void) char p = hello world; return p;void Test(void) char *str = NULL; str = GetMemory(); printf(str);(794) Test函数的运行结果如何?Void GetMemory2(char *p, int num) *p = (char *)malloc(num);void Test(void) char *str = NULL; GetMemory(&str, 100); strcpy(str, hello); printf(str);(795) Test函数的运行结果如何?void Test(void) char *str = (char *) malloc(100); strcpy(str, “hello”); free(str); if(str != NULL) strcpy(str, “world”); printf(str); (796) 已知函数 strcpy的原型是:char *s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论