저는 퍼즐의 일부 C 코드를 가지고 있습니다. 이 코드로 할 이유가 있기 때문에 struct
오브젝트 이 힙 또는 스택으로 끝나는지를 어떻게 알 수 있는지 궁금합니다.스택 또는 힙에 있습니까?
개체하지가 malloc
또는 calloc
로 생성되고있다. 그들은 배열의 형태로 삶을 시작합니다. 이 게시물의 목적을 위해 Emp라는 구조체를 호출 할 것입니다.
Emp myEmp[6];
/* Each myEmp[?] item is populated in code */
개체는 다양한 방법으로 정렬되고 조작되며 어떤 시점에서 개체는 복사 된 다음 배열 포인터로 전달됩니다. 복사는 memcpy
을 통해 이루어집니다. 객체는 다음과 같이 입력됩니다 : Emp* emps_a[6]
.
개체는 사본에서 이동하여 위 emps_a에 할당됩니다.
int i;
for(i = 0; i < n; i++)
{
emps_a[i] = myEmpsCopy + i;
}
일부 또는 모든 문제가 궁금한 점이 있는지는 잘 모르겠습니다. 나는 결코 자유()를 필요로하지 않거나 기억을 정리하지 않는다 ... 나는 C에 대해 너무 많이 알지 못한다.
도움을 크게 주신다.
규칙 : malloc을 호출하면 무료로 문의해야합니다. inverse - malloc을 호출하지 않았다면, free를 호출해서는 안된다 - 일반적이지만 항상 그런 것은 아니다. (어떤 함수는 malloc을 호출 할 것입니다. 그렇다면 함수 설명서에 큰 빨간색 글자로 설명해야합니다.) –