亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5034 | 回復(fù): 11
打印 上一主題 下一主題

求助: 結(jié)構(gòu)指針做函數(shù)入?yún)?/a> [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-08-15 22:51 |只看該作者 |倒序?yàn)g覽
本來想用結(jié)構(gòu)指針獲取某處已經(jīng)分配了內(nèi)存的塊數(shù)據(jù).
結(jié)果發(fā)現(xiàn)返回的指針為空, 百思不得其解, 特求助.

程序如下:
typedef struct Blk
{
    int aa;
    int dd;
}BLOCK, *pBLOCK;

pBLOCK blk = (pBLOCK)malloc(sizeof(BLOCK));

int test(BLOCK *out)
{
    out = blk;
    printf("\n source pointer %p", out);
    printf("\n 0x%x", out->aa);
    printf("\n 0x%x", out->dd);
    return 0;
}

// 唯一的應(yīng)用程序?qū)ο?br />
CWinApp theApp;

using namespace std;



int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
        int nRetCode = 0;

        // 初始化 MFC 并在失敗時顯示錯誤
        if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
        {
                // TODO: 更改錯誤代碼以符合您的需要
                _tprintf(_T("錯誤: MFC 初始化失敗\n"));
                nRetCode = 1;
        }

    blk->aa =0x1234;
    //blk->bb = L"first";
    //blk->cc = new CString(L"second");

    blk->dd = 0x4321;

    pBLOCK out=NULL;

    test(out);

    printf("\n when out, pointer:%p", out);
    printf("\n gloabl pointer:%p", blk);
   

        return nRetCode;
}



運(yùn)行結(jié)果:

source pointer 003AF8B8
0x1234
0x4321
when out, pointer:00000000
gloabl pointer:003AF8B8請按任意鍵繼續(xù). . .

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-08-15 23:27 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-08-15 23:28 |只看該作者
原帖由 lurker0 于 2009-8-15 22:51 發(fā)表
本來想用結(jié)構(gòu)指針獲取某處已經(jīng)分配了內(nèi)存的塊數(shù)據(jù).
結(jié)果發(fā)現(xiàn)返回的指針為空, 百思不得其解, 特求助.

程序如下:typedef struct Blk
{
    int aa;
    int dd;
}BLOCK, *pBLOCK;

pBLOCK blk = (pBLOC ...



out 是傳值的,還是原來的NULL,這個輸出結(jié)果不是意料中的事嗎?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-08-16 08:06 |只看該作者
原帖由 lurker0 于 2009-8-15 22:51 發(fā)表
本來想用結(jié)構(gòu)指針獲取某處已經(jīng)分配了內(nèi)存的塊數(shù)據(jù).
結(jié)果發(fā)現(xiàn)返回的指針為空, 百思不得其解, 特求助.

程序如下:typedef struct Blk
{
    int aa;
    int dd;
}BLOCK, *pBLOCK;

pBLOCK blk = (pBLOC ...

傳out的地址

論壇徽章:
1
申猴
日期:2014-02-11 14:50:31
5 [報(bào)告]
發(fā)表于 2009-08-16 15:01 |只看該作者
指針的指針也可以

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-08-16 15:31 |只看該作者
慚愧啊  一時腦筋轉(zhuǎn)不過彎了  的確是基本功問題
如上面所說
指針的指針可以解決這個問題  引用也可以
int test(BLOCK * & out)

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
7 [報(bào)告]
發(fā)表于 2009-08-17 15:40 |只看該作者
原帖由 jamesr 于 2009-8-15 23:27 發(fā)表


指針的基礎(chǔ)不扎實(shí):要改參數(shù)的值只有一種方法——把改完的值作為返回值返回。
看看下面的例子:

#include
struct A{
  int a;
};

void swap(struct A *a, struct A *b)
{
  struct A *t=b;
  ...

int test(BLOCK **out)
{
    *out = blk;
    printf("\n source pointer %p", *out);
    printf("\n 0x%x", (*out)->aa);
    printf("\n 0x%x", (*out)->dd);
    return 0;
}


...

test(&out);

因?yàn)槟阋獋饕粋地址出來,所以要給一個指針的地址,就是 **out。

[ 本帖最后由 yulihua49 于 2009-8-17 15:43 編輯 ]

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2009-09-02 16:38 |只看該作者
學(xué)習(xí)了。!

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2009-09-02 16:59 |只看該作者
pBLOCK blk = (pBLOCK)malloc(sizeof(BLOCK));
這句是做何講?
全局變量賦值?!

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
10 [報(bào)告]
發(fā)表于 2009-09-02 19:58 |只看該作者
原帖由 CMAX 于 2009-9-2 16:59 發(fā)表
pBLOCK blk = (pBLOCK)malloc(sizeof(BLOCK));
這句是做何講?
全局變量賦值?!

分配內(nèi)存。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP