已采納回答 / 田心楓
應(yīng)該差不多吧?但是可能有些東西是新的而已 ?你們大學(xué)沒學(xué)到而已
已采納回答 / 稚氣磅礴
每個(gè)指針在你賦值給它之前,它都需要有一個(gè)確定的指向地址.如果你直接head = p1;因?yàn)閔ead沒有確定的地址,運(yùn)行時(shí)就會出現(xiàn)未知錯(cuò)誤.好像這就是所謂的野指針.加了head = NULL;就是為了給head一個(gè)確定的指向;
已采納回答 / 筑夢之隊(duì)
//倒序打印for(index=0; index<=length/2-1; index++) ? ? ? ?//二分 交換?{????temp = word[index];????word[index] = word[length-index-1];????word[length-index-1] = temp;}1、一個(gè)基本的錯(cuò)誤為:沒有意識到數(shù)組的下標(biāo)是位于[0,length),所以導(dǎo)致出現(xiàn)了后面兩個(gè)問題:2、二分交換的結(jié)束值的取值有問題。應(yīng)該是length/2-1,而不是(length+ind...
2017-01-20
已采納回答 / 天之大
malloc返回的是開辟空間的首地址,他并不知道你放的是什么類型的東西,所以要用第一個(gè)括號中的內(nèi)容強(qiáng)制轉(zhuǎn)換指針類型為struct weapon*,和p1的類型轉(zhuǎn)為一樣,否則會警告指針類型不符合sizeof運(yùn)算符可以求類型所占空間大小比如sizeof(int),也可以求某個(gè)量的空間大小,比如struct weapon weapon1={......};可以用sizeof(weapon1)求他的大小,等于sizeof(struct weapon)
已采納回答 / 天之大
是的,自己試試就知道了,不過要寫為struct weapon weapon1={1,2};&weapon1.a和&weapon1
已采納回答 / 慕粉13285976209
首先, p1和p2是指針, 他們都指向一個(gè)地址. 這里的scanf中取的是(p1->atk)這個(gè)整體的地址. "->"的優(yōu)先級高于"&".
已采納回答 / 純愛楓若情
p1是一個(gè)指針這沒問題,但是關(guān)鍵是“p1->price”代表的就是指針里面的price這個(gè)變量,就相當(dāng)于其他語言里的“p1.price”這本身是一個(gè)變量,當(dāng)然要在前面加上“&”尋址符。
已采納回答 / 等不到忘不了
因?yàn)樵谘h(huán)中你一直在輸入數(shù)據(jù),所以要一直開辟新的內(nèi)存空間。
已采納回答 / qq_不言_6
create() 函數(shù)返回的是head的值
已采納回答 / qq_不言_6
p1 記錄當(dāng)前正在輸入的結(jié)構(gòu)體,p2記錄當(dāng)前正在輸入的結(jié)構(gòu)體的上一個(gè)結(jié)構(gòu)體,head指向的只是首地址,只在n==1的情況下進(jìn)行賦值
已采納回答 / skldhaj4353820
如果寫入任何內(nèi)容,head不置空的話,返回的是個(gè)野指針,指向未知的地址。
已采納回答 / leekunhwee
printf("%s\n,%d\n",weapon_1.name,++weapon_1.atk); 改為?printf("%s\n %d\n",weapon_1.name,++weapon_1.atk); 即可
2016-10-25