Я хочу передать указатель на функцию. Я хочу, чтобы этот указатель указывал на какое-то место в середине массива. Скажем, у меня есть такой массив, как unsigned char BufferData[5000];
, верно ли синтаксически следующее утверждение?Каков правильный способ смещения указателя?
writeSECTOR(destAddress, (char *)(BufferData + (int)(i * 512)));
// destAddress is of type unsigned long
// writeSECTOR prototype: int writeSECTOR (unsigned long a, char * p);
// i is an int
Да. Приведение в 'int' необязательно, но в противном случае ваше утверждение действительно. –
На самом деле я бы сказал, что ваше решение лучше, чем многие из предложенных ниже ответов! –
Я предпочитаю подход & array [i], поскольку его более очевидно, что вы смещаете указатель на массив, то есть BufferData + (i * 512) менее читабельны относительно его намерений, чем & BufferData [i * 512]. – Cthutu