我找不到将float * []类型的指针数组作为参数传递给函数的正确语法。
real * pp[] = { _osc[0].get_samples_ptr(), _osc[1].get_samples_ptr() };
_mod.iterate_sample_loop( samples, p_syn_ctx, pp );
没问题,但是
_mod.iterate_sample_loop( samples, p_syn_ctx,
{ _osc[0].get_samples_ptr(),
_osc[1].get_samples_ptr() } );
其中iterate_sample_loop是:
void mod::iterate_sample_loop( u32 samples,
synth_context * p_syn_ctx,
real * p_inputs[] ) ...
结果“错误:在'xxx'标记之前预期的primary-expression”。
答案 0 :(得分:3)
您无法使用{ _osc[0].get_samples_ptr(), _osc[1].get_samples_ptr() }
创建临时数组。 AFAIK临时创建数组的唯一方法是:
typedef int array_type[3];
void f(int the_array[]) {}
int main() {
f(array_type{1,3,4});
}
但这仅适用于C ++ 11。我认为在C ++ 03中根本不可能。