【发布时间】:2021-12-25 14:37:13
【问题描述】:
我有这两个结构:
typedef struct
{
char* name;
int flightCount;
Flight** flightArr;
LIST dateList;
int flightsSorted;
}Airline;
typedef struct
{
Airport* airportsArr;
int airportsCount;
}AirportManager;
我需要为这两个数组编写一个通用打印机(一个是结构数组,另一个是指针数组)。
我知道一般的打印机应该是这样的:
void generalArrayFunction(const void* pArr, const int size, int sizeOfElement, void(*printer)(const void*))
{
for(int i=0;i<size;i++)
printer((char*)pArr + i * sizeOfElement);
}
它非常适合我使用以下行打印的常规数组:
generalArrayFunction(manager.airportsArr,manager.airportsCount,sizeof(manager.airportsArr[0]),printAirport);
但是对于指针数组,我不能使用相同的逻辑,我不知道我应该做什么。下面的行打印了一个结构,但第二个搞砸了。
generalArrayFunction(*pComp->flightArr, pComp->flightCount, sizeof(pComp->flightArr[0]), printFlight);
有什么建议吗?
【问题讨论】:
标签: arrays c pointers printing function-pointers