我在代码片段中定义指针数组时遇到问题const void *- Visual C++ 抱怨我尝试的任何组合:
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] = formatvoid **const args和上面一样