У меня есть функция, которая создает массив указателей.Функция, которая выделяет память, возвращает новый указатель памяти через параметр, переданный функции.Простейший код, который может воспроизвести проблему, выглядит следующим образом:
void foo (void** new_mem, size_t bytes)
{
*new_mem = malloc(bytes);
}
int main (void)
{
int** ptr_arr; // Want to create an array of pointers
foo(&ptr_arr, sizeof(int*)*100); // Create an array size of 100
// compiler emits warning:
// 'void **' differs in levels of indirection from 'int ***'
return 0;
}
Я мог бы привести первый параметр, переданный в foo, примерно так: '(void **) & ptr_arr', однако, чтобы избавиться от предупреждения,Мне интересно: есть ли более подходящее решение?