"결론은 그냥 쓰니깐 되더라."
자세한건 자세히 설명 나와있는 블로그로.. 저는 코드 중심으로 모으니깐요..^~^
1.
그냥 한번 해보았다. 서로 값 주고 받기.
const char가 char한테 주는 형식으로.
2.
이건 잘 동작한다.
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { const char array[] = {"abcdefg"}; char *pStr; pStr = (char *)malloc(sizeof(char)*10); strcpy(pStr, array); printf("%s\n", pStr); return 0; }
|
3.
이러한 방식으로 값이 주고 받기도 한다.
여기서 포인트는 char의 포인터의 주소를 줘야지 그 주소를 기반으로 한 포인터 한줄(배열)이 생겨난다.
만약에 포인터의 주소를 주지 않고 포인터만 넘기면 포인터 위에 임시변수격인 메모리 공간이 할당됨으로 이것은 함수가 소멸됨과 동시에 소멸되게 된다.
#include <stdio.h> #include <string.h> #include <stdlib.h> void set(char **pStr); const char array[] = {"abcdefg"}; int main() { char *pStr; set(&pStr); printf("%s\n", pStr); return 0; } void set(char **pStr) { int i; *pStr = (char *)malloc(sizeof(char)*10); strcpy(*pStr, array); }
|
'소프트웨어' 카테고리의 다른 글
[c++] fwrite의 thread-safety란 (0) | 2014.02.03 |
---|---|
[c++] 변수 선언에 대해서 (0) | 2014.01.29 |
[c++] thread 기본 구조, 모양 (0) | 2014.01.28 |
[ubuntu] terminal 다중 창 'Terminator' ( multi terminal ) (0) | 2014.01.23 |
[javascript] chapter6. Objects _발번역 (0) | 2014.01.22 |