私はこの機能を持っています:
void print(THashEntry *entry, ...)
{
va_list parameters;
va_start(parameters, entry);
while (true)
{
THashEntry *currentEntry = va_arg(parameters, THashEntry *);
if (!currentEntry)
{
break;
}
printf("%s\n", currentEntry->value);
}
va_end(parameters);
}
これらのエントリのアドレスを関数に渡し、メンバーの「値」にアクセスして出力したいと思います。
ただし、va_arg を介してパラメーターを取得しようとすると、最初からではなく 2 番目のパラメーターが返され、サイクルの別のループが始まると、セグメンテーション違反になります。