(C/C++)用函数返回一个结构体-创新互联

方法一: 参数里含有指向指针的指针。(C/C++)用函数返回一个结构
体

注意:如果函数参数里只有一个指向结构体的指针,是无法正确地返回结构体的值的。原因在于在编译的时候,会对入参p产生一个备份_p.

创新互联是一家集网站建设,城步企业网站建设,城步品牌网站建设,网站定制,城步网站建设报价,网络营销,网络优化,城步网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

参考此文:http://www.cnblogs.com/kaituorensheng/p/3246900.html

方法二:返回一个指向结构体的函数指针

#include "stdafx.h" #include "stdlib.h" #include "stdint.h" typedef struct Vector3 { int X; int Y; int Z; } Vector3; typedef struct Config { int mode; Vector3 *pData; } Config; void GetConfigData(Config** pConfig) { Config *cfg = (Config *)malloc(sizeof(Config)); cfg->mode = 1; cfg->pData = (Vector3 *)malloc(sizeof(Vector3)); cfg->pData->X = 2; cfg->pData->Y = 4; cfg->pData->Z = 6; *pConfig = cfg; } Config *GetConfigData1() { Config *cfg = (Config *)malloc(sizeof(Config)); cfg->mode = 3; cfg->pData = (Vector3 *)malloc(sizeof(Vector3)); cfg->pData->X = 5; cfg->pData->Y = 7; cfg->pData->Z = 9; return cfg; } int _tmain(int argc, _TCHAR* argv[]) { Config *cfg1 = (Config *)malloc(sizeof(Config)); cfg1->pData = (Vector3 *)malloc(sizeof(Vector3)); GetConfigData(&cfg1); printf("cfg1:%d, %d, %d, %d", cfg1->mode, cfg1->pData->X, cfg1->pData->Y, cfg1->pData -> Z); cfg1 = GetConfigData1(); printf("cfg1:%d, %d, %d, %d", cfg1->mode, cfg1->pData->X, cfg1->pData->Y, cfg1->pData->Z); free(cfg1); }
文章题目:(C/C++)用函数返回一个结构体-创新互联
文章网址:http://bzwzjz.com/article/dcjcej.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都企业网站设计 品牌网站建设 成都网站设计 成都网站建设 网站建设公司 广安网站设计 高端网站建设 营销型网站建设 网站设计 手机网站设计 外贸营销网站建设 网站制作 企业网站建设公司 温江网站设计 网站建设公司 网站建设 成都网站建设推广 成都网站建设 公司网站建设 成都网站设计 定制网站制作 重庆网站设计