이번에 분석중인 코드가 있는데요 그 코드보면 맨 처음에 malloc로 할당받습니다.
그리고 나서 두번째 이후로는 처음에 할당한 것을 가지고 realloc를 쓰면서 크기를
계속 늘려갑니다. 물론 처음 할당했던 크기만큼요. 예를들면

struct info *aa;
int size_len=sizeof(struct info);
for(int i=0;i<5;i++){
   if(i == 0){
      aa = (struct info *)malloc(size_len);
      size_len += size_len;
   }else{
      aa = (struct info *)realloc(aa, size_len);
      size_len += size_len;
   }
}

위와 같은 방법으로 하는 경우에 aa를 배열처럼 써서 직접 접근이 가능하다는 장점이 있습니다.
링크드 리스트로 하면 순서대로만 접근해야 하는 단점을 해결할 수 있다고 생각합니다.(아닌가?;;)

1. 근데 위와 같은 방법으로 하는 경우 가장 문제가 되는 경우가 어떤 경우일까요?? 언뜻 생각하기에
struct info의 크기가 크다고 가정하고 한곳이 아닌 여러군데서 저런 식의 메모리 할당이 있다면 침범
하는 경우도 생길것 같습니다. 예를 들어 1000번지에 할당하고 두번 재조정되어 1050번지까지 할당
되었다고 가정해볼게요. 그리고나서 다른 곳에서 위와 같은 방식으로 다른 구조체를 할당합니다.
우연찮게 1060번지에 할당했습니다. 나중에 1000번지에 할당한 놈을 또 두번 재조정하여 크기를
늘립니다. 그러면 1100번지까지 할당합니다. 이 경우 메모리가 겹쳐지면서 문제가 될거 같거든요??
제 생각이 맞는지요?

2. 그리고 가장 기본적인 질문인데요.. 위의 코딩 예에서 realloc할 때, 첫번째에 할당된 곳의 주소를
가지고 거기부터 계속 크기를 늘려가는건가요? 1번의 경우 그렇다고 생각하고 가정했거든요..

3. 이건 다른 질문인데요 디버그할 때 memory leaks!! 라는 것이 출력창에 나옵니다. 정확히 어떤
경우에 나오는 건가요?? 친구말로는 메모리 할당했다가 전부 해제를 못한 경우라고 하는데.. 잘
모르겠어요.

아시는 분 답변좀 부탁드릴게요..