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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1591 | 回復(fù): 6
打印 上一主題 下一主題

[Linux] 動(dòng)態(tài)庫中如何返回一個(gè)結(jié)構(gòu)體 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-11-20 17:12 |只看該作者 |倒序?yàn)g覽
Linux態(tài)庫中,要返回一個(gè)結(jié)構(gòu)體類型,應(yīng)該如何做呢?下面是我的接口函數(shù),我用到了malloc函數(shù),但這樣做的話就無法free掉申請(qǐng)的空間,請(qǐng)大神給點(diǎn)提示,應(yīng)該怎么做呢?

struct net_interface *getnet(char *devname)
{       
        int fd;
        char *net_info;
        struct ifreq ifr;
        struct ethtool_value eth_val;
        struct ethtool_cmd eth_cmd;
        struct net_interface *net_card;

        //net_card = (struct net_interface *)net_info;
        net_card = malloc(sizeof(struct net_interface));

        memset(&ifr, 0, sizeof(ifr));
        memset(&eth_val, 0, sizeof(eth_val));
        memset(&eth_cmd, 0, sizeof(eth_cmd));

        strcpy(ifr.ifr_name, devname);

        fd = socket(AF_INET, SOCK_DGRAM, 0);
        if (fd < 0)
        {
                perror("Cannot get control socket");
                exit(1);
        }

        net_card->speed = get_net_speed(fd, &ifr, &eth_cmd);
        net_card->link_status = get_net_link(fd, &ifr, &eth_val);

        //free(net_card);
        return &net_card;
}

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-11-20 20:06 |只看該作者
把net_card作為參數(shù)傳進(jìn)去.

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-11-20 22:46 |只看該作者
scotthuang1989 發(fā)表于 2013-11-20 20:06
把net_card作為參數(shù)傳進(jìn)去.


你的意思在接口函數(shù)中再加一個(gè)形參?改成這樣:struct net_interface *getnet(char *devname, struct net_interface *net_card)?然后在調(diào)用函數(shù)中再把一個(gè)struct net_interface類型的結(jié)構(gòu)體傳進(jìn)來?是這樣嗎?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-11-21 14:53 |只看該作者
int getnet(char *devname, struct net_interface *net_card)
devname為輸入?yún)?shù)
net_card為輸出參數(shù),在API外申請(qǐng)空間
int為返回值

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2013-11-21 16:26 |只看該作者
回復(fù) 3# 后知后覺gogogo


    是的。這樣調(diào)用者就能控制內(nèi)存的使用了.

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2013-11-22 11:31 |只看該作者
回復(fù) 4# braveyly
非常感謝,說得很詳細(xì)


   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-11-22 11:32 |只看該作者
回復(fù) 5# scotthuang1989


感謝,問題解決啦!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP