Я просто пишу код, который должен перераспределить массив X указателей на константы A, B, C (см. Схему ниже):
_______ _______ _______ ________ ________________
|char* A|char* B|char* C|...|char** X|...|char*** pref_arr|...
""""""" """"""" """"""" """""""" """"""""""""""""
__ __
|\______________________/ |\__________/
У меня есть массив A, B, C , указатель на этот массив X и указатель pref_arr , который указывает на X .
У меня не было места в схеме, но все символы определены как const.
У меня тогда есть следующий код
function(const char*** pref_arr, int new_length) {
const char** new_pref_arr = realloc(**pref_arr, sizeof(const char*) * new_length);
// some other stuff to do...
}
где я пытаюсь перераспределить массив X на длину new_length .
Проблема в том, что моя IDE предупреждает меня, что передача const char*
в void*
отменяет квалификаторы.