Может ли кто-нибудь обобщить правильное использование realloc()?
Что вы делаете, когда realloc() терпит неудачу?
Из того, что я видел до сих пор, кажется, что если realloc() терпит неудачу, вы должны использовать free() старый указатель. Это правда?
Вот пример:
1. char *ptr = malloc(sizeof(*ptr) * 50);
2. ...
3. char *new_ptr = realloc(ptr, sizeof(*new_ptr) * 60);
4. if (!new_ptr) {
5. free(ptr);
6. return NULL;
7. }
Предположим, что realloc() терпит неудачу в строке 3. Правильно ли я делаю это на линии 5 на free() ing ptr?