bei statischen arrays, zB char buffer[256]; muss man zur programmierzeit wissen, dass es nie mehr als 256 chars werden, und wenn es weniger sind, ist speicher verschenkt. da bietet es sich an, mit char *buffer=malloc(size); zur laufzeit soviel speicher zu reservieren, wie benötigt wird.

bei funktionen gerät man mit einem return x; in die verlegenheit, nur einen wert zurückgeben zu können. auch da ist es bequemer, zeiger zu übergeben, um mehrere variablen zu verändern, ohne sie global definieren zu müssen.

gruesse