1、Postmessage 与 SendMessage的区别

  PostMessage该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得

  SendMessage该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回,SendMessage函数返回值为消息处理结果。。

2、在一个动态链接库中new的内存能在另一个动态链接库中释放吗?

  当一个应用程序初始化的时候,首先被初始化的是C Run-Time Library,然后才是应用程序的入口函数,而Heap对象就是在C Run-Time Library被初始化的时候被创建的。

对于动态链接的C Run-Time Library,运行库只被初始化一次,而对于静态连接的运行库,每链接一次就初始化一次,所以对于每个静态链接的运行库都拥有彼此不同的Heap 对象。这样在某种情况下就会出问题,导致程序崩溃,例如一个应用程序调用了多个DLL,除了一个DLL外,其他的DLL,包括应用程序本身动态连接运行 库,这样他们就使用同一个Heap对象。而有一个DLL使用静态连接的运行库,它就拥有一个和其他DLL不同的Heap 对象,当在其他DLL中分配的内存在这个DLL中释放时,问题就出现了。

3、几个内存问题

题一·:

void GetMemory( char *p )
{p = (char *) malloc( 100 );
}
void Test( void )
{char *str = NULL;GetMemory( str );strcpy( str, "hello world" );printf( str );
}

  该题传入的形参是实参本身,而不是取地址,传入的形参在函数内部改变时并不能真正改变传入形参的值,执行完GetMemory(str)函数后,str依然为NULL.

题二

char *GetMemory( void )
{char p[] = "hello world";return p;  }
void Test( void )
{char *str = NULL;str = GetMemory();printf( str );
}

   运行完str=GetMemory()时,str的值还是正确的,但是执行printf(str)时,printf内部的三个变量覆盖了str原有的直,网上解释为,p为局部变量,调用完GetMemery()后,P指向的内存释放,即str指向内存释放,所以打印的为不确定乱码

题三

 void GetMemory( char **p, int num )
{*p = (char *) malloc( num );
}
void Test( void )
{char *str = NULL;GetMemory( &str, 100 );strcpy( str, "hello" );printf( str );
}

   能够成功,但最好加上判断是否申请内存成功。

题四

void Test( void ){   char *str = (char *) malloc( 100 );strcpy( str, "hello" );free( str );  if(NULL != str)  {    strcpy(str, "123456");    printf(str);  }}

  free()后应将str置为NULL,,不置为空,if内部操作的为野指针,会出现崩溃问题。。

转载于:https://www.cnblogs.com/fenglangxiaotian/p/9445283.html

面试的问题 及回答相关推荐

  1. 面试时,如何回答关于“缺点”的问题——大学生求职七大昏招衍生系列(2)

    上次写到< 求职时,如何解释简历中的空白?>,今天我说说面试时,如何回答关于缺点的问题. "您觉得自己有什么缺点吗?能否举出一个自己的失败案例?"基本上算是面试时的必答 ...

  2. 亡羊补牢,面试时如果发现回答不好,该怎么办?

    大家在面试时,哪怕准备再充分,也不都可能一帆风顺.请记住:面试回答不好是很正常的,尤其在你刚开始面试的时候. 所以你一定要有良好的心态:面试成了最好,不成的话面试官是免费给你一次锻炼的机会,而且免费告 ...

  3. 计算机组成原理复试面试高频问题,研究生复试面试高频问题及回答技巧汇总

    原标题:研究生复试面试高频问题及回答技巧汇总 复试是对考生专业知识.为人处世.处理问题能力的综合测评,因此,复试时导师最常提的问题分为两部分:考生基本情况和考生专业知识.在"考生基本情况&q ...

  4. 面试时如果发现回答不好,该怎么办?

    大家在面试时,哪怕准备再充分,也不都可能一帆风顺.请记住:面试回答不好是很正常的,尤其在你刚开始面试的时候. 所以你一定要有良好的心态:面试成了最好,不成的话面试官是免费给你一次锻炼的机会,而且免费告 ...

  5. SpringBoot自动装配原理解析——面试可以这样会回答

    1. 前言 SpringBoot是目前软件中最主流的框架,无论是工作还是面试基本都有它的身影,SpringBoot主要解决了传统spring的重量级xml配置Bean,实现了自动装配:所以,我们也常在 ...

  6. 在面试中,如何回答最常见的问题?

    面试是找工作过程中最重要的一环,成功的面试可以让你更接近你梦想的工作.但是,即使你有着出色的工作经验和学历,如果你不知道如何回答常见的面试问题,你也许无法展现出你的真实能力.在面试中,如何回答最常见的 ...

  7. 技术面试问项目难题如何解决的_技术面试感觉什么都会,面试官一问回答不上来怎么办?...

    原标题:技术面试感觉什么都会,面试官一问回答不上来怎么办? 又到了一年金三银四,回想到很多年前我刚参加工作时的面试经历,那时都是呆呆地等着面试官问问题,被问到一些自己并不熟悉的问题时要不就是思考半天也 ...

  8. 遇到mybatis面试问题应该怎么回答

    遇到mybatis面试问题应该怎么回答 1. #{}和${}的区别是什么? #{}是预编译处理,${}是字符串替换.(1) Mybatis在处理#{}时,会将sql语句中的?号替换为#{},调用项目工 ...

  9. 【职场】面试中最难回答频率最高的70个问题

    1.请你自我介绍一下你自己, 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知识领域 ...

  10. 面试风云录(01) - 怎样回答这两个问题?

    由于工作经历的缘故,使我有一些面试别人的机会,所以应该还有一些经验可以跟大家聊聊. 当我们提到"面试" 这个词,总是让人有种阶级感,好像面试官就是高高在上,而面试者则是屈居于下,其 ...

最新文章

  1. 音视频技术:视频质量评价方法简介 1
  2. 你在听音乐的时候能否感受到背后有“寒意“?
  3. Eureka restTemplate访问超时
  4. [vue] vue2.0不再支持v-html中使用过滤器了怎么办?
  5. 通过纯css实现图片居中的多种实现方式
  6. Java 接受reactjs数据_ReactJS:从API获取数据
  7. 水晶報表:金額轉換大寫12/8
  8. 8s pod 查看 的yaml_k8s之深入解剖Pod(二)
  9. 计算机网络自顶向下WireShark实验:TCP
  10. 在Linux下使用GIMP打印一寸照
  11. Mobilenet——深度可分离卷积
  12. CentOS7.4 忘记root密码 重置方法
  13. 蓝牙4.0知识百科1 什么是BLE4.0
  14. 20221026使用搜狗翻译在线翻译英文文档的评测
  15. win7系统安装提示“很抱歉,程序无法在非MBR引导的分区上进行激活
  16. Python webdriver.Chrome()的使用
  17. 游标卡尺原理及读数方法
  18. 拼多多、京东的“老二之争”
  19. linux系统中boot什么意思说,Linux里boot什么意思
  20. linux下录音识别成文字软件下载,语音转文字专家app-语音转文字专家手机版下载v3.2.0-Linux公社...

热门文章

  1. AjaxControlToolkit控件效果演示
  2. 使用IE WebControls中的TabStrip控件和MultiPage控件实现选项卡式风格页面(转载)
  3. 网站性能优化--CRP
  4. [生态建设] - js判断小技巧
  5. Java 类的特性2
  6. Firefox 66 将阻止自动播放音频和视频
  7. Swoole 源码分析——Server模块之初始化
  8. QtCreator添加图片资源
  9. Ubuntu 14.04.3 LTS 配置 DNS Server
  10. C# 操作 Word 修改word的高级属性中的自定义属性