Ich möchte einen Zeiger auf eine Funktion übergeben. Ich möchte, dass dieser Zeiger auf eine Stelle in der Mitte eines Arrays zeigt. Angenommen, ich habe ein Array wie zB unsigned char BufferData[5000];
, wäre die folgende Aussage syntaktisch korrekt?
Zeigerarithmetik ist ziemlich einfach zu verstehen. Wenn Sie einen Zeiger auf das erste Element eines Arrays haben, zeigt p + 1 auf das zweite Element und so weiter, unabhängig von der Größe jedes Elements. Selbst wenn Sie also ein Array von Ints oder eine beliebige MyData-Struktur hätten, wäre es wahr.
%Vor%Wenn Ihr Array unsigned char ist, dann fügen Sie einfach so viele Bytes Offset, die Sie in das Array gehen möchten, z. B.
%Vor% Alternativ, wenn die Notation verwirrend ist, können Sie sich immer darauf beziehen, wie es in den obigen Kommentaren gezeigt ist, z. &data[512]
Das sollte funktionieren. In C erhöht das Hinzufügen einer Ganzzahl zu einem Zeiger den Zeiger um die Ganzzahl multipliziert mit dem Wert sizeof
, auf den der Zeiger zeigt.