У меня есть пустота * Я получаю некоторую функцию, которая на самом деле является двумерным массивом int.Я хочу отправить его в качестве аргумента функции, которая ожидает двухмерный массив.Как лучше всего разыграть его правильно?
void foo(void* val){ //How to cast val in order to send to bar?? bar() } void bar(int val[2][2]){ //Do something }
bar((int(*)[2]) val);
(Как утверждает Карл Норум, приведение даже не требуется; оно имеет то преимущество, что дает вам предупреждение компилятора, если вы случайно передаете его функции, ожидающей, скажем, int(*)[3].)
int(*)[3]