#pointer
5
FundamentalTILC
Pointer guide; struct
아래 코드가 있다 문자열을 담고있는 다중 배열을 구조체에 담아 반환하는 내용의 함수다. 반환되는 구조체 배열을 순회하는 코드는 다음과 같다 구조체 포인터를 순회하기 위해서는 . 대신 ->로 참조한다.
FundamentalTILC
Pointer guide; multiple pointer
변수 포인터의 가장 적절한 예는 배열과 문자열이다. 배열의 가장 앞 원소(element)의 주소는 배열의 시작 주소와 동치다. char형의 배열은 곧 문자열이다. 맨 앞 문자의 주소는 문자열의 시작 주소와 동치다. 이러한 배열 자체를 원소로 삼아 또 다른 배열을 만들 수 있다. 어렵게 생각할 것 없이 아래 도식을 보자. 각각 요소 3개를 가진 배열 4개의 주소를 담고 있는 배열. 이게 전부 다다. *를 두개 선언함으로써 배열주소를 담은 배열을 만들 수 있다. 아래 도식을 추가로 보자. malloc으로 실제 동적 할당과 배열이 어떻게
FundamentalTILC
Pointer guide; iterator and manipulate
char src[55] : 문자열 조작을 위해서 상수가 아닌 스택 또는 힙 영역으로 할당해야한다. tmp_str = str; : 단순히 포인터(문자열)를 순회하는것이 아닌 조작을 필요로 할때는 원본 주소를 보존한다. 그리고 대신 순회할 포인터 변수에 원본 주소를 받는다. tmp_str++ : 주소를 대리로 이동하기 때문에 원본의 값 또한 변경된다. 그러나 원본의 시작 주소는 건드리지 않고 있다. 여기서 따로 배열을 만들어서 상수에 대응할 수 없는 이유는 지역변수는 메소드를 벗어나면 변수 데이터가 사라지기 때문이다. 이와 관련해서 읽
FundamentalTILC
Pointer guide; method and memory
다음의 선언이 있다고 하자 char *strcpy 이 선언은 char형의 포인터, 즉 문자열로 반환하고 포인터 변수 dest와 src를 매개변수로 받는 포인터 함수다. char *dest의 정확한 표기법은 사실 char* dest다. 그래서 함수 내에서 다음 주소를 참조하기 위해 조작시 *dest++ 식으로 조작하면 안되고 dest++가 맞다. 이후 다음의 포인터 변수 선언과 할당이 있다고 하자. 이부분의 경우는 tmp_dest와 dest가 같은 주소를 갖게 된다. 이는 dest를 순회하기 위해서 dest의 시작 주소를 보존하는 것
FundamentalTILC
Pointer guide; string and array
포인터를 사용하기 위해서 포인터 변수를 먼저 선언 후 주소를 할당한다. &a