第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C語(yǔ)言聲明結(jié)構(gòu)的指針的問(wèn)題。

C語(yǔ)言聲明結(jié)構(gòu)的指針的問(wèn)題。

慕斯王 2019-04-16 20:27:51
//samplecode1#include#defineLEN41structbook{chartitle[LEN];charauthor[LEN];}intmain(){structbook*b;//有意義的指針printf("Enterthebooktitle:");scanf("%40s",b->title);printf("Enterthebookauthor:");scanf("%40s",b->author);return0;}//samplecode2#include#defineLEN41structbook{chartitle[LEN];charauthor[LEN];}structbook*newBook();intmain(){structbook*b;//有意義的指針b=newBook();return0;}structbook*newBook(){structbook*temp;//NULL指針,為何?printf("Enterthebooktitle:");scanf("%40s",temp->title);printf("Enterthebookauthor:");scanf("%40s",temp->author);returntemp;}為什么上面兩段代碼,第一段可以跑,第二段在跑newBook()的時(shí)候就會(huì)報(bào)Segmentationfault..后來(lái)我在第二段代碼中用structbook*temp=(structbook*)malloc(sizeof(structbook));之后第二段就不會(huì)報(bào)錯(cuò)了。。就有個(gè)疑問(wèn)了。在第一段代碼main中定義的book結(jié)構(gòu)指針。這個(gè)指針是個(gè)有意義的指針。但是到了第二段代碼的newBook方法中定義的話,就會(huì)是NULL指針。。求解。
查看完整描述

2 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

第一段程序你結(jié)構(gòu)體指針沒(méi)初始化,b根本就是的野指針嘛,你程序能運(yùn)行時(shí)因?yàn)橐爸羔樓『脹](méi)影響到程序的運(yùn)行;
第二段函數(shù)中返回結(jié)構(gòu)體指針,main函數(shù)若是處理該給指針就屬于越界操作.
你通過(guò)malloc創(chuàng)建結(jié)構(gòu)體,會(huì)在內(nèi)存中段空間就開(kāi)辟了這段內(nèi)存.只要你沒(méi)有free這段內(nèi)存就會(huì)一直存在,因此在mian中訪問(wèn)該指針是合法的.
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 336 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)