소프트웨어

[c++] const char vs char 비교 실험

개발자_이훈규 2014. 1. 28. 20:07

"결론은 그냥 쓰니깐 되더라."

자세한건 자세히 설명 나와있는 블로그로.. 저는 코드 중심으로 모으니깐요..^~^


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);

}