OR use new ro malloc to create a new buffer and make sure that the calling function deletes it when finished. Not generally considered a good practice but it works. I don't know why you don't want to use CSting though...they are very simple to use and reasonably efficient (not great but O.K.).