realoc() 전에 malloc()이 필요합니까?
포인터가 정적이거나 글로벌이거나 자동인 경우 NULL로 명시적으로 설정된 경우 realoc이 malloc으로 작동한다는 것을 읽었기 때문에 포인터가 0인 경우 malloc()을 사용하지 않고 사용하고 있었습니다.
하지만 많은 프로그래머들이 malloc(1)로 설정하거나 설정하려고 시도하는 것을 알 수 있습니다.필요하신가요?
ptr이 null 포인터인 경우 realoc()은 지정된 크기에 대해 malloc()와 같아야 합니다.
ptr이 calloc(), malloc() 또는 realoc()에 의해 이전에 반환된 포인터와 일치하지 않거나 free() 또는 realoc()에 대한 호출로 공간이 이전에 할당 해제된 경우 동작이 정의되지 않습니다.
malloc
필요하지 않습니다. 를 사용할 수 있습니다.realloc
오직.
malloc(n)
와 동치입니다.realloc(NULL, n)
.
그러나 종종 사용하는 것이 더 명확합니다.malloc
의 특수한 의미론 대신에realloc
. 그것은 무엇이 작동하는지의 문제가 아니라, 코드를 읽는 사람들을 혼란스럽게 하지 않습니다.
(편집: 에 대한 언급 삭제realloc
의 역할을 하는free
, 표준 C가 아니기 때문에.댓글참조)
언급URL : https://stackoverflow.com/questions/4459275/is-a-malloc-needed-before-a-realloc
'programing' 카테고리의 다른 글
커서 드래그로 텍스트/요소 선택을 방지하려면 어떻게 해야 합니까? (0) | 2023.09.11 |
---|---|
'MySql'에 대한 엔티티 프레임워크 제공자를 찾을 수 없습니다.데이터, MySql Client' ADO.NET 프로바이더 (0) | 2023.09.11 |
C/C++ stdlib 명명 규칙의 이름은? (0) | 2023.09.11 |
heroku에서 db를 다운로드하려면 어떻게 해야 합니까? (0) | 2023.09.11 |
폼 제어를 비활성화하되 값은 유지하는 방법 (0) | 2023.09.11 |