Посмотрев код C на несколько проектов с открытым исходным кодом, я не уверен, что все делаю правильно.
Когда я создаю строки (char *), я обычно делаю это:
#define DEF_LEN 10
char *mystring;
mystring = malloc(DEF_LEN*sizeof(char));
Когда я меняю строку (обычно это делается внутри функции):
mystring = realloc(mystring, strlen(newstring)*sizeof(char)+1);
strcpy(mystring,newstring);
На многих проектах с открытым исходным кодом я вижу, что многие разработчики просто делают:
char another_string[1024];
Вопросы:
- Можно ли использовать
realloc
хорошо?
- Является ли
realloc
убийцей производительности (как это используется в моем коде / очень часто)?