Я знаю, что есть несколько вопросов о том, что дает хорошие (и рабочие) решения, но ни один IMHO, который четко говорит, что это лучший способ достичь этого. Итак, предположим, что у нас есть 2D-массив:
int tab1[100][280];
Мы хотим сделать указатель, указывающий на этот 2D-массив. Для этого мы можем:
int (*pointer)[280]; // pointer creation
pointer = tab1; //assignation
pointer[5][12] = 517; // use
int myint = pointer[5][12]; // use
или, альтернативно:
int (*pointer)[100][280]; // pointer creation
pointer = &tab1; //assignation
(*pointer)[5][12] = 517; // use
int myint = (*pointer)[5][12]; // use
Хорошо, оба, похоже, работают хорошо. Теперь я хотел бы знать:
- Каков наилучший способ, 1-й или 2-й?
- равны для компилятора? (скорость, перфорация...)
- - это одно из этих решений, которое потребляет больше памяти, чем другое?
- что чаще всего используется разработчиками?