【发布时间】:2015-12-18 02:05:14
【问题描述】:
我正在尝试使用 Visual Studio 2013 释放一个指针表。
const char** tableNames = malloc(NB_NAMES * sizeof(char*));
(...)
free(tableNames);
出于某种原因,Visual 一直在抱怨:
warning C4090: 'function' : different 'const' qualifiers
如果是关于释放const char* 的警告,我可以理解,因为这可能是静态只读内容。
但是const char**(注意第二个*)?这是一个指针表。表本身应该被释放,因为它一开始是 malloc 的。
这是 Visual 的错误还是我遗漏了什么?
注意:我可以禁用警告,或者通过在free() 中转换为void* 来关闭它。但是,如果它只是一种欺骗编译器并暴露于某些问题的方法,那听起来就不太对了。
所以问题真的是:这是一个编译器错误(并且不需要转换为void*)吗?
【问题讨论】:
标签: c visual-studio malloc free