은 상황에서 정확히 무슨 일이 일어날 것메모리 할당과 문자 배열
int i = 0;
for(i; i <100; i ++)
{
char some_array[24];
//...
strcpy(some_array,"abcdefg");
}
윌 some_array
행위 등 :
some_array = malloc(24);
의 시작에서 사이클이 끝나고 free(some_array)
?
또는 변수가 스택에 할당되고 함수가 종료 된 후에 종료됩니까? 이 루프의 각 반복의 시작에서 생성하고, 루프의 각 반복의 끝에서 다시 파괴 그래서
나는 그것을 이해합니다! 하지만 그것은 프로그램 스택에서 생성 될 것이라는 것을 의미합니까? 아니면 malloc 호출과 같은 동적 인 메모리 할당으로 근본적으로 전환 할 것입니까? – Vanya
@Vanya : 구현에 달려 있지만 일반적인 구현에서는 힙/무료 저장소가 아닌 스택에 있습니다. –
기본적으로 나는 무엇이 더 좋고, 정적으로 char 배열을 가지거나, malloc을 사용하여 메모리를 할당하고, 그 다음에 free'ying을 할 것인지 묻고있다. – Vanya