首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

返回char*的有关问题

2012-09-22 
返回char*的问题以下函数,如何在主函数中获取getMac的返回值并打印出来?char *getMac(){static char mac[2

返回char*的问题
以下函数,如何在主函数中获取getMac的返回值并打印出来?
char *getMac()
{

static char mac[255]={0};
PIP_ADAPTER_INFO pIpAdapterInfo=new IP_ADAPTER_INFO();
unsigned long stSize=sizeof(IP_ADAPTER_INFO);
int nRel=GetAdaptersInfo(pIpAdapterInfo,&stSize);
if(ERROR_BUFFER_OVERFLOW==nRel)
{
delete pIpAdapterInfo;
pIpAdapterInfo=(PIP_ADAPTER_INFO)new BYTE[stSize];
nRel=GetAdaptersInfo(pIpAdapterInfo,&stSize);
}
if (ERROR_SUCCESS==nRel)
{
//输出网卡信息 
while (pIpAdapterInfo)

sprintf(mac,"%s%02X-%02X-%02X-%02X-%02X-%02X",mac, 
pIpAdapterInfo->Address[0], 
pIpAdapterInfo->Address[1], 
pIpAdapterInfo->Address[2], 
pIpAdapterInfo->Address[3], 
pIpAdapterInfo->Address[4], 
pIpAdapterInfo->Address[5]); 
pIpAdapterInfo = pIpAdapterInfo->Next; 
//cout<<mac<<endl;
//return mac
//Sleep(10000);
break;
}
}
//释放内存空间
if (pIpAdapterInfo)
{
delete pIpAdapterInfo;
}

return mac;
}


int _tmain(int argc, _TCHAR* argv[])
{
//主函数如何获取getMac的返回值
return 0;
}

[解决办法]
既然函数getMac中使用了静态局部变量mac,直接把该函数的返回值赋给char*类型的变量就行了。

C/C++ code
int _tmain(int argc, _TCHAR* argv[]){   const char *pMac = getMac();  // 最好不要修改返回值,在此将pMac定义为const char*类型   cout << pMac << endl;  // 输出   return 0;}
[解决办法]
探讨

既然函数getMac中使用了静态局部变量mac,直接把该函数的返回值赋给char*类型的变量就行了。

C/C++ code

int _tmain(int argc, _TCHAR* argv[])
{
const char *pMac = getMac(); // 最好不要修改返回值,在此将pMac定义为const char*类型
cout << pMac << endl……

热点排行