Zu 1.
Ich schätze dir gehts vor allem darum, dir die {} - Klammern bei der
for-Schleife zu sparen. Da muss ich dir aber sagen, dass der Sinn guter
Programmierung nicht darin liegt, alles so kurz wie möglich zu
gestalten, sondern so verständlich wie möglich. Fördern tust du
letzteres damit sicherlich nicht.
Nebenbei: Ich wüsste nicht, wie man das in 1 Anweisung bekäme, in 1
Zeile bekommst du es aber mit Backspace ;)
Zu 2.
Wenn du das Daten-Array um 1 Feld größer machst, als maximal Daten
reingeschrieben werden und du es mit NULL vorbelegst, kannst du statt
1 | if (*ptr_data > ptr_last) return 0;
|
auch einfach
1 | if (!(*ptr_data)) return 0;
|
So zumindest mach ich es immer.