append und get Methoden mit Zeiger
-
Hey,
Ich habe für mein Projekt ein paar Hilfsfunktionen geschrieben, darunter append und get funktionen die ich wie Folgend realisiert habe:
LZSBYTE LZSGetWord(LZSBYTE *pSourceAddress_i, LZSUINT unOffset_i, LZSWORD *bOutput_o) { LZSWORD *pSourceAddress = pSourceAddress_i + unOffset_i; *bOutput_o = *pSourceAddress; return (LZSBYTE) 0; } LZSBYTE LZSAppendWord(tLzsNcSegment *pTargetAddress_io, LZSWORD wValues_i) { LZSWORD *pTargetAddress = pTargetAddress_io->m_pArray + pTargetAddress_io->m_wOffset; *pTargetAddress = wValues_i; pTargetAddress_io->m_wOffset = pTargetAddress_io->m_wOffset + 2; return (LZSBYTE) 0; }
tLzsNcSegment ist folgendes struct:
typedef struct { LZSBYTE *m_pArray; //Actual address to an Array LZSWORD m_wOffset; //Next free Offset } tLzsNcSegment;
Ich bekomme an der Stelle: LZSWORD *pTargetAddress = pTargetAddress_io->m_pArray
+ pTargetAddress_io->m_wOffset;immer ein Warning das da heißt: initialization from invalid pointer type.
Ich denke das liegt daran, dass ich einem WordPointer mit einem BytePointer initialisiere. Aber mein Word Pointer kann ja kein Byte Pointer werden denn schließlich soll ja ein Word zurückgegeben werden. Ich habe diese Funktionen übrigens für Byte, Word und DWord, sehen dann halt analog aus. Wie bekomme ich den Warning hier weg, bzw wie müsste das aussehen, dass ich hier keinen Warning habe?
-
Habe das ganze jetzt explizit gecasted damit kommt zumindest das Warning nicht mehr ;P hätt ich auch gleich draufkommen können ^^