Предполагается, что вы не используете malloc и создаете строку или буфер, используя
char array[100];
Но вы знаете, что вы используете его только для очень короткой части длинной функции, вы можете просто поместить эту часть функции в другой набор {}
int reallylongfunction() {
// Do a lot of stuff
{
char stringbuffer[100];
// Do stuff with the buffer...
// Ok, we're done with the buffer, and don't want it anymore
}
// Do a lot more stuff
return;
}
Это приведет к тому, что буфер выйдет из области видимости и будет освобожден. Но будьте осторожны, все, что вы объявите внутри дополнительного {}, выйдет за рамки и исчезнет!
Редактировать: Черт, комментарии верны. Статические строки, выходящие из области видимости, не приносят никакой пользы. Отредактировано так, что это просто массив.