欧美疯狂三p群体交乱视频,搡老女人多毛老妇女中国,天天夜碰日日摸日日澡性色av,大乳videos巨大

中興筆試問題指針出錯

時間:2020-11-28 10:31:35 筆試題目 我要投稿

中興筆試問題指針出錯

   中興筆試問題指針出錯,請指出這個程序里的不正確的地方

中興筆試問題指針出錯

  char *getString()

  {

  return (char*)malloc(800);

  }

  int main()

  {

  char *str;

  str = getString();

  pintf("%s",str);

  return 0;

  }

  原來的參考答案:

  錯誤在于:

  在前面的函數中。malloc分出來的空間被放在了一個棧上面

  主函數使用了這個函數后操作系統后彈出棧頂

  也就是這塊空間被shi放了(9分)

  后面那個printf打印的本來是指向棧頂的那個地址的。。

  但現在彈出了

  所以不知道指到哪里去了

  也不會得到自己想要的打印結果(9分)

  個人認為:

  這個根本就不是在棧上,而是在推上,用函數返回堆的地址,這是很常見的做法啊,大家可以參照高質量編程。

  這個我覺得不會是中興給的'答案吧

  感覺太水了。不知道大家看出來多少?

  你的想法是正確的。

  在一個函數中malloc一段內存,供另一個函數使用,沒有任何問題。

  msdn原文如下:

  void *malloc(size_t size );

  malloc returns a void pointer to the allocated space or NULL if there is insufficient memory available. To return a pointer to a type other than void, use a type cast on the return value. The storage space pointed to by the return value is guaranteed to be suitably aligned for storage of any type of object. If size is 0, malloc allocates a zero-length item in the heap and returns a valid pointer to that item. Always check the return from malloc, even if the amount of memory requested is small.

  可見,分配是在堆上(heap),而不是在棧上。

  但是,對于這段代碼,有兩個問題需要注意:

  1。當內存不再使用時,應使用free()函數將內存塊釋放。其實,free這個函數大多人都會調用,但是free了并不代表完事了,一定要把指向這個堆空間的指針清空,這個題目里應使用str=NULL。

  2。malloc只管分配內存,并不能對所得的內存進行初始化,所以得到的一片新內存中,其值將是隨機的。這道題目,打印出來是亂碼。需要自動初始化,可以使用calloc函數。

【中興筆試問題指針出錯】相關文章:

中興硬件筆試題08-29

中興筆試面試經驗08-23

中興通訊筆試真題07-09

中興筆試題目分享有答案12-07

中興公司筆試真題(含答案)09-24

筆試經驗-記中興通訊測試崗兩次筆試01-17

中興面試筆試題目分享答案12-07

C++筆試題:關于鏈表和指針12-17

最新中興Java語言筆試真題及答案09-24

2013中興筆試題JSD130911-16

主站蜘蛛池模板: 巴彦县| 泽库县| 徐闻县| 隆化县| 阳江市| 清水河县| 镇雄县| 许昌县| 策勒县| 芦溪县| 洛浦县| 屯留县| 南城县| 扬中市| 辛集市| 临海市| 大竹县| 白河县| 全南县| 溆浦县| 咸阳市| 沧州市| 青龙| 垣曲县| 康平县| 仙居县| 通辽市| 淮安市| 开封市| 建始县| 长海县| 海淀区| 布尔津县| 甘孜| 疏勒县| 安康市| 从江县| 南宁市| 赤壁市| 龙口市| 灌南县|