C語言中

成都創(chuàng)新互聯(lián)企業(yè)建站,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計(jì),有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗(yàn),設(shè)計(jì)師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對(duì)于成都做網(wǎng)站、網(wǎng)站制作中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動(dòng)的思維在網(wǎng)頁中充分展現(xiàn),通過對(duì)客戶行業(yè)精準(zhǔn)市場(chǎng)調(diào)研,為客戶提供的解決方案。
指針做函數(shù)參數(shù)傳遞二維數(shù)組有兩種基本方法:
1、傳遞“數(shù)組指針”
#include stdio.h
void output( int (*pa)[3], int n )//這個(gè)函數(shù)只能輸出n行3列的二維數(shù)組
{
int i,j;
for( i=0;in;i++ ){
for( j=0;j3;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}
2、傳遞“指針數(shù)組”
先將二維數(shù)組的行指針存儲(chǔ)到一個(gè)指針數(shù)組中,再將指針數(shù)組傳遞到子函數(shù)中去。
#include stdio.h
void output( int *pa[], int row,int col ) //這個(gè)函數(shù)更通用,但調(diào)用前,要做好準(zhǔn)備工作。
{
int i,j;
for( i=0;irow;i++ ){
for( j=0;jcol;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
int i;
int *pa[2];
for( i=0;i2;i++ )
pa[i]=a[i];
output(pa, 2, 3);
}
int二維數(shù)組在內(nèi)存中沒有所謂的列,?它是一段"連續(xù)"的內(nèi)存空間,
正因?yàn)槭沁B續(xù)的,?所以才要用p[i*n+j]來尋址
intcmp是和GetKeyFunc_t對(duì)應(yīng)起來的。
而你現(xiàn)在錯(cuò)在了CmpFunc_t這個(gè)函數(shù)參數(shù)上了。
你把怎樣的函數(shù)參數(shù)指針傳給了BST_t *newBST?
你沒交代清楚啊,你把錯(cuò)誤指針傳給newBST函數(shù)的第一個(gè)參數(shù),編譯器肯定報(bào)錯(cuò)了。你給了那么多代碼,關(guān)鍵你把什么傳給了BST_t *newBST的第一個(gè)參數(shù)?給一下你調(diào)用這個(gè)newBST函數(shù)的代碼,而且要你傳給該函數(shù)第一個(gè)參數(shù)的參數(shù)定義。
另外給個(gè)建議:定義函數(shù)時(shí),記得對(duì)傳進(jìn)來的參數(shù)進(jìn)行合法性檢驗(yàn)。多加幾行代碼是很有必要的,能增強(qiáng)函數(shù)的健壯性。(微軟也好,ISO也好,都對(duì)大部分函數(shù)設(shè)計(jì)時(shí)要求做必要的合法檢驗(yàn))
網(wǎng)站名稱:c語言列指針如何傳入函數(shù),c語言函數(shù)傳遞指針
轉(zhuǎn)載來源:http://chinadenli.net/article11/dsspgdd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、商城網(wǎng)站、企業(yè)網(wǎng)站制作、做網(wǎng)站、服務(wù)器托管、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)