반응형
int *ptr = NULL; //포인터는 항상 선언해줄때 비워주자.
ptr = (int*)malloc(sizeof(int));//int = 4
ptr에 인트 사이즈 만큼 비워달라고 한다.
ptr = (int)malloc(sizeof(int));
아무변수 = (자료형)malloc(sizeof(자료형));
*ptr=4; //ptr이 가르키는곳에 4 들어감.
free(ptr);//메모리 공간을 비워줘야한다.
//////////////////////////////////////////
int *dangling = NULL; dangling 이라는 포인터를 null로 선언해주고
dangling = ptr; //dangling 에 ptr 값을 저장했는데
free(ptr); //ptr만 풀어주면 dangling 값은 가르키는게 아무것도 없게됨. 접근할 수 없는 상태이기에
*dangling = ? //overflow //문제가 발생합니다.
/////////////////////////////////////////
이래서 배열도 선언할수 있다.
ptr[i] //이런 식으로 배열 선언해주고
*(ptr+3)//ptr[3] //아니면 ptr+3 해줘도 된다.
///////////////////////////////////////////////////
int * arr = (int*)malloc(sizeof(int)*n);
0x00
case
arr+1 // ox04 // n칸으로 넘어감 arr + n
모든 배열은 포인터다. 아래 문장은 서로 같은거임.
&arr[0] == &(*(arr+0))
//모든 포인터는 4byte
*참고
반응형
'코오딩 > _배운거.' 카테고리의 다른 글
C# TryParse문. 트라이파스문 (0) | 2021.02.24 |
---|---|
컴파일러 에러_꾸준히 업데이트중 (0) | 2020.03.09 |
fgets() 함수 (0) | 2020.03.06 |
이중포인터 개념정리. 미완. (0) | 2020.03.02 |
문자열 정렬하기(버블소트) (0) | 2020.02.29 |