我在代码片段中定义指针数组时遇到问题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] = format
void **const args
和上面一样