求助:请各位大哥帮我看看这个小问题,谢谢!
#include "stdafx.h"
#include "stdio.h"
#include "windows.h"
#include "Iphlpapi.h"
#pragma comment(lib, "Iphlpapi.lib")
void main()
{
int i;
char MAC[30];
IP_ADAPTER_INFO pAdapterInfo;
ULONG len = sizeof(pAdapterInfo);
if(GetAdaptersInfo(&pAdapterInfo, &len) != ERROR_SUCCESS)
{
printf("GetAdaptersInfo ERROR!\n");
}
else
{
printf("MAC: %02x-%02x-%02x-%02x-%02x-%02x\n", pAdapterInfo.Address[0], pAdapterInfo.Address[1],pAdapterInfo.Address[2],pAdapterInfo.Address[3],pAdapterInfo.Address[4],pAdapterInfo.Address[5]);
}
}
打印出:00-0f-ea-5d-df-69
可是我这样写:
bool CGetIPUtils::GetMAC(char *buf)
{
TCHAR buf0[5];
TCHAR buf1[15];
TCHAR buf2[5];
TCHAR buf3[5];
TCHAR buf4[5];
TCHAR buf5[5];
IP_ADAPTER_INFO pAdapterInfo;
ULONG len = sizeof(pAdapterInfo);
if(GetAdaptersInfo(&pAdapterInfo, &len) != ERROR_SUCCESS)
{
return false;
}
else
{
sprintf(buf0,"%02d",pAdapterInfo.Address[0]);
sprintf(buf1,"%02d",pAdapterInfo.Address[1]);
sprintf(buf2,"%02d",pAdapterInfo.Address[2]);
sprintf(buf3,"%02d",pAdapterInfo.Address[3]);
sprintf(buf4,"%02d",pAdapterInfo.Address[4]);
sprintf(buf5,"%02d",pAdapterInfo.Address[5]);
_tcscpy(buf,buf1);
MessageBox(NULL, buf, TEXT("COM1"), MB_OK); //如果打开失败
return true;
}
}
可是 MessageBox 显示的 buf 为 15
这是什么原因啊?
还有一个问题是:
GetMAC(char *buf)
这个 buf 没有开辟空间,为什么也可以用?
谢谢!