Originally Posted By: Uhrwerk
Originally Posted By: Ercoles
So how should they be defined locally?

Not at all. A STRING* is an engine object. Allocation is costly. You should use global or static strings whereever possible. If you have good reason to create a local string with str_create don't forget to free them afterwards, or you'll create a memory leak.

Well when you define them globally, they will still be allocated. Also, if you don't free them it won't technically be a memory leak since the engine frees them on exit. It would be memory bloat though in the course of the game's runtime.