次の簡略化された関数を呼び出すと、最後のステートメントで EXC_BAD_ACCESS エラーが発生します。
void test(char *param, ...) {
va_list vl;
va_start(vl, param);
double a = va_arg(vl, double);
double b = va_arg(vl, double);
double *result = va_arg(vl, double*);
*result = a*b;
va_end(vl);
}
関数は次のように呼び出されます。
double result;
test("blub", 3, 3, &result);
Xcode の clang コンパイラ (Apple LLVM コンパイラ 3.1) を使用しています。