日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试的问题 及回答

發(fā)布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试的问题 及回答 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、Postmessage 與 SendMessage的區(qū)別

  PostMessage該函數(shù)將一個消息放入(寄送)到與指定窗口創(chuàng)建的線程相聯(lián)系消息隊列里,不等待線程處理消息就返回,是異步消息模式。消息隊列里的消息通過調(diào)用GetMessage和PeekMessage取得

  SendMessage該函數(shù)將指定的消息發(fā)送到一個或多個窗口。此函數(shù)為指定的窗口調(diào)用窗口程序,直到窗口程序處理完消息再返回,SendMessage函數(shù)返回值為消息處理結(jié)果。

2、在一個動態(tài)鏈接庫中new的內(nèi)存能在另一個動態(tài)鏈接庫中釋放嗎?

  當(dāng)一個應(yīng)用程序初始化的時候,首先被初始化的是C Run-Time Library,然后才是應(yīng)用程序的入口函數(shù),而Heap對象就是在C Run-Time Library被初始化的時候被創(chuàng)建的。

????? 對于動態(tài)鏈接的C Run-Time Library,運行庫只被初始化一次,而對于靜態(tài)連接的運行庫,每鏈接一次就初始化一次,所以對于每個靜態(tài)鏈接的運行庫都擁有彼此不同的Heap 對象。這樣在某種情況下就會出問題,導(dǎo)致程序崩潰,例如一個應(yīng)用程序調(diào)用了多個DLL,除了一個DLL外,其他的DLL,包括應(yīng)用程序本身動態(tài)連接運行 庫,這樣他們就使用同一個Heap對象。而有一個DLL使用靜態(tài)連接的運行庫,它就擁有一個和其他DLL不同的Heap 對象,當(dāng)在其他DLL中分配的內(nèi)存在這個DLL中釋放時,問題就出現(xiàn)了。

3、幾個內(nèi)存問題

題一·:

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

  該題傳入的形參是實參本身,而不是取地址,傳入的形參在函數(shù)內(nèi)部改變時并不能真正改變傳入形參的值,執(zhí)行完GetMemory(str)函數(shù)后,str依然為NULL.

題二

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

  ?運行完str=GetMemory()時,str的值還是正確的,但是執(zhí)行printf(str)時,printf內(nèi)部的三個變量覆蓋了str原有的直,網(wǎng)上解釋為,p為局部變量,調(diào)用完GetMemery()后,P指向的內(nèi)存釋放,即str指向內(nèi)存釋放,所以打印的為不確定亂碼

題三

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

?  能夠成功,但最好加上判斷是否申請內(nèi)存成功。

題四

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

?

  free()后應(yīng)將str置為NULL,,不置為空,if內(nèi)部操作的為野指針,會出現(xiàn)崩潰問題。。

?

轉(zhuǎn)載于:https://www.cnblogs.com/fenglangxiaotian/p/9445283.html

總結(jié)

以上是生活随笔為你收集整理的面试的问题 及回答的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。