Может ли кто-нибудь обобщить правильное использование 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
?