コードスニペットでポインターの配列を定義する際に問題がありconst void *
ます-VisualC++は、私が試した組み合わせについて文句を言います:
void *call_func_cdecl(void *func, const void *const *args, int nargs);
void vlogprintf(const char *format, va_list va) {
int nargs;
void **args;
args = malloc(...);
args[0] = format;
// fill the rest...
call_func_cdecl((void*)logprintf, args, nargs);
free(args);
}
ご存知free
のvoid *
ように、配列自体は一定ではありませんが、その要素format
はaconst void *
であり、の要素である必要がありargs
ます。
これまで私はこれらを試しました:
const void **args
ラインに着き
warning C4090: 'function' : different 'const' qualifiers
ましたfree(args)
void const **args
同上
void *const *args
ラインに着き
error C2166: l-value specifies const object
ましたargs[0] = format
void **const args
同上