Dein Code ist mM keine Verbesserung und p80286's Code wird auch
keine Exception auslösen, falls der String mal leer ist; denn length ist dann 0 und es wird nix verschoben. Was bei Euch beiden fehlt ist ein Test
if length(s)<sizeof(sa)... (Die beliebten Bufferoverflows lassen grüßen).