阅读:1580回复:7
能举一个关于返回数组的例子吗?
能举一个关于返回数组的例子吗?
比如有一个方法test,要返回一个BYTE[8]的数组,这要怎么写? 并且如何调用这个方法? BYTE[8] test() { ...... } ...... |
|
沙发#
发布于:2004-11-08 11:13
你可以用返回数祖的指针来用嘛
(void*) test( ) ; char BYTE[8] ; char *ptr ; ptr = ( char*) test() ; ( void * ) test() { return BYTE ; } |
|
板凳#
发布于:2004-11-08 11:19
人家的方法是上面这样:
BYTE IP_ADAPTER_INFO::Address[8] 这样得到好像就是错的: BYTE addr[8]; addr = IP_ADAPTER_INFO::Address; |
|
地板#
发布于:2004-11-08 12:44
路过看一下
|
|
|
地下室#
发布于:2004-11-08 13:24
使用数组指针!
|
|
5楼#
发布于:2004-11-08 13:26
人家的方法是上面这样:
BYTE IP_ADAPTER_INFO::Address[8] 这样得到好像就是错的: BYTE addr[8]; addr = IP_ADAPTER_INFO::Address; ------------------------------------------------------------ hoho 你这样不可以的 还是这样吧: memcpy( addr, IP_ADAPTER_INFO::Address, sizeoft(BYTE)*8 ); 如果从函数中返回就用 BYTE *GetData(BYTE *pDest) { if (NULL == pDest) return NULL; BYTE *p = (BYTE*)pDest; if (NULL == p) return NULL; memcpy( p, IP_ADAPTER_INFO::Address, sizeoft(BYTE)*8 ); p = NULL; return pDest; } |
|
6楼#
发布于:2004-11-08 13:58
char buffer[11];
int count = sprintf( buffer, "%02X-%02X-%02X-%02X-%02X-%02X", (unsigned char)pAdapterInfo->Address[0], (unsigned char)pAdapterInfo->Address[1], (unsigned char)pAdapterInfo->Address[2], (unsigned char)pAdapterInfo->Address[3], (unsigned char)pAdapterInfo->Address[4], (unsigned char)pAdapterInfo->Address[5]); 我现在改成这样。 但还有个问题。因为这边是一个char buffer[11]; 上面的代码有循环,但不知道循环次数。 如何保存buffer? 是做一个足够大的数组,还是用指针? 如何用指针? |
|
7楼#
发布于:2004-11-08 14:55
char buffer[11]; 如果用来显示就可以这样 for (int id=0; id<n; id++) { printf("%02X-",(unsigned char)pAdapterInfo->Address[id] ); } //输出最后一个 printf( "%02X", (unsigned char)pAdapterInfo->Address[n] ); 我想其它的要求也可以这样类推 |
|