Ich muss eine Funktion schreiben, in C unter Linux, um generische Daten zu lesen oder zu schreiben.GCC Warnung: Zeigerarithmetik mit Typ void *
Ich kann große Daten lesen (oder schreiben), also habe ich eine Weile gebraucht, wie viele Bytes ich gelesen habe. Beim nächsten Aufruf lese ich zum Beispiel den Originalzeiger + wie viele Bytes ich gelesen habe. Aber ich kenne den Typ nicht, also habe ich eine Lücke verwendet * aber gcc sagt:
membox.c: In function ‘myRW’:
membox.c:301:22: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
w = read(fd, data + (s*type) , len - s);
^
membox.c:308:23: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
w = write(fd, data + (s*type) , len - s);
Kann ich das tun? Ich sollte diese Warnungen ignorieren?
'char *' ist wahrscheinlich der Zeigertyp, den Sie für die Arithmetik verwenden möchten. – Flexo
OT: Diese 'long int's sollten auch' size_t's sein. – alk
OT^2: Nach Konvention wird bei Fehler '-1' zurückgegeben. – alk