5.15.10. alloca()

alloca() 함수는 함수에 로컬 스토리지를 할당합니다. 이 함수는 size 바이트 메모리에 대한 포인터를 반환하거나, 충분한 사용 가능한 메모리가 충분하지 않은 경우 NULL을 반환합니다. 기본 구현은 8바이트 단위로 정렬되는 메모리 블록을 반환합니다.

alloca()에서 반환된 메모리는 절대 free()로 전달되면 안 됩니다. 대신, 메모리는 alloca()를 호출한 함수가 복귀할 때 자동으로 할당 해제됩니다.

alloca()는 함수 포인터를 통해 호출하면 안 됩니다. 같은 함수에서 alloca()setjmp()를 사용할 경우에는 주의를 기울여야 합니다. setjmp()longjmp() 호출 사이에 alloca()가 할당한 메모리는 longjmp()에 대한 호출이 있으면 할당 해제되기 때문입니다.

이 함수는 많은 C 라이브러리에 대한 공통 비표준 확장입니다.

구문

void* alloca(size_t size);

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0205GK
Non-Confidential