當我提供一個結構時,我有一個函數,它給了我一個字節的字符緩衝區。如何在不全局存儲的情況下返回數組?
unsigned char complete[16] = { 0 };
char* construct_complete_array(socketType* m)
{
unsigned char *temp = (unsigned char*) m;
size_t j;
for (j = 0; j < sizeof(*m); j++)
{
complete[j] = *(temp);
printf("%.2x ", *(temp));
*temp++;
}
return complete;
}
int diff_bit_calc(socketType* datanode, socketType* knode)
{
char* result = construct_complete_array(datanode);
size_t j;
printf("\nPrinting result: \n");
for (j = 0; j < sizeof(*datanode); j++)
{
printf("%.2x ", *(result));
*result++;
}
}
我希望它是一個通用函數,它提供了一個結構將返回結構的字符緩衝區。 我可能有另一次調用像
char* result1 = construct_complete_array(knode);
(我不認爲有complete[16] buffer
作爲全球一個好主意。有它的本地和返回它仍然是一個沃瑟的想法。)