指針變量中存儲的也是一個值, 比如子函數(shù)收到傳遞來的參數(shù)值為:3647829, 可以是數(shù)值, 也可以是指針地址, 就看你子函數(shù)定義成什么類型的參數(shù)
目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、雙遼網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
intcmp是和GetKeyFunc_t對應(yīng)起來的。
而你現(xiàn)在錯在了CmpFunc_t這個函數(shù)參數(shù)上了。
你把怎樣的函數(shù)參數(shù)指針傳給了BST_t *newBST?
你沒交代清楚啊,你把錯誤指針傳給newBST函數(shù)的第一個參數(shù),編譯器肯定報錯了。你給了那么多代碼,關(guān)鍵你把什么傳給了BST_t *newBST的第一個參數(shù)?給一下你調(diào)用這個newBST函數(shù)的代碼,而且要你傳給該函數(shù)第一個參數(shù)的參數(shù)定義。
另外給個建議:定義函數(shù)時,記得對傳進來的參數(shù)進行合法性檢驗。多加幾行代碼是很有必要的,能增強函數(shù)的健壯性。(微軟也好,ISO也好,都對大部分函數(shù)設(shè)計時要求做必要的合法檢驗)
你的地址值傳遞錯誤,按照我給你修改的試試看,一定要注意你的實參傳遞的是地址還是具體的值,如果是地址,在子函數(shù)中就不要去修改你傳遞進來的地址。
int
main(void)
{
int
data=0;
//此處隨機分配內(nèi)存空間,不要用指針
myStack=makeStack(myStack,top);
Push(myStack,3);
Push(myStack,8);
Push(myStack,19);
Push(myStack,31);
Push(myStack,43);
Push(myStack,36);
Pop(myStack,data);//此處,傳遞的是地址值
printf("%d
",data);
}
int*
Pop(LinkedStack
myStack,int
*data)
{
pStack
cursor=myStack;
if(Stack_Empty())
{
}
else
{
while(cursor-next!=top)
{
cursor=cursor-next;
}
*data=top-data;
//此處,只是在同一個內(nèi)存空間修改其值,所以不要取地址
top=cursor;
return
data;
}
}
分享標題:c語言向函數(shù)傳遞指針,c語言函數(shù)的指針
分享URL:http://jinyejixie.com/article48/dssdohp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、動態(tài)網(wǎng)站、建站公司、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)