heap Memory Issue Linux/C/C++ 2011. 12. 9. 10:02
어제 작업을 하면서 발견한 이슈를 기록하고자 한다

main
(
int * index;
indexClone(index);

if(index==NULL) printf("Fuck!!!! What's this!!!\n");

}

indexClone(*index)
{
index=(int *)malloc(MAXSIZE*sizeof(int);
}

위와같은 간단한 코드상에서 3가지 방법을 사용하여

main에서 결과값을 확인하였을떄

NULL이 잡힌다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

방법은 다음과 같다

1. 위와 같은 방법

2. 2차 포인트 사용

3. return을 힙메모리 주소로 던져주고 main의 index로 주소를 받는 방법

이론상으론 다 되어야 한다

안된다.

그래서 마지막으로 사용해 본 방법은 Struct를 사용해 1번 방법대로 만들었다.

된다.

거지같다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

아무리 생각하고 구글링해도 원인을 모르겠다

뭘까....





문제 해결 -------------- 이중포인터 사용 (내가 잘못 쓴듯)

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 10

void indexClone(int **index)
{
    *index=(int *)malloc(MAXSIZE*sizeof(int));
}

void main(void)
{
    int *index;
   
    while(1)
    {
        usleep(10000);
       
        indexClone(&index);
        if(index==NULL)
        {
            printf("Fuck you!!\n");
            free(index);
        }
        else
        {
            printf("Ohhhh good!!\n");
            free(index);
        }
    }
       
이중 포인터로 위와같은 방법을 쓰면 해결 가능
$ sudo apt-get update
$ sudo apt-get install build-essentail
$ sudo apt-get install sun-java6-jdk
$ sudo apt-get install eclipse

프로그램 > 개발 > 이클립스

HELP > Install New Software

ADD 클릭 후 다음 입력

Galileo

이상이다.
'xterm': unknown terminal type

위와 같은에러가 뜬다

이때 아래와 같이 해주면 된다

export TERM=xterm
export TERM=vt100