alloca()의 용도에 대해서
글쓴이: iyouhe / 작성시간: 금, 2003/02/21 - 11:34오전
alloca()에 대해서 제가 이해한건
이건 메모리가 힙에 잡히지 않고 스택에 잡히므로 프로그램이나 루틴 종료시 free()하지 않아도 된다고 알고 있거든요. 실제로 alloca메로리를 free()시켰는데 그 부분에서 세그멘트 폴트가 나는 경우도 있고요.
특히 가변적인 스트링 비교함수에서 아래와 같은 표현을 쓰는 것을 봤는데 이렇게 하면 빠른가요?
int
fnmatch (const char *pattern, const char *string, int flags)
{
register char *p, *pat, *n, *str;
register char c;
strcpy(n = alloca(strlen(string)+1), string);
str = n;
strcpy(p = alloca(strlen(pattern)+1), pattern);
pat = p;
.......
그냥 배열도 스택에 쌓아두는 건데 꼭 alloca가 가변적인 것 빼고 좋은 점이 있는지 알고 싶네요.
Forums:
위와 같은 방법으로는 사용하지 말라는 군요...참고하세요..
위와 같은 방법으로는 사용하지 말라는 군요...
참고하세요..
http://www.gnu.org/manual/glibc-2.2.5/html_node/Variable-Size-Automatic.html
---
http://coolengineer.com
댓글 달기