Я полагаю, что «сбрасывает квалификацию» относится к const
или volatile
. Таким образом, вы, вероятно, передаете константный указатель как неконстантный аргумент.
Ваш код, вероятно, похож на следующее:
#include <stdlib.h>
int main() {
const double *x ;
x = (double *) malloc(4 * sizeof(double)) ;
free(x) ;
return 0 ;
}
Я заимствовал этот пример из аналогичного вопроса, заданного на онлайн-форуме .
Проблема в том, что, поскольку вы сказали, что данные, на которые вы указываете, const
, вы не можете их изменить. Вы не можете инициализировать это, вы не можете изменить это, вы не можете free
это. Поэтому не используйте указатель const
в качестве единственного указателя на результат malloc
.