1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//str은 반드시 수정 가능해야 합니다.
//반환되는 이차원 char 배열은 사용자가 알아서 free시켜야 합니다.
//nullptr로 배열의 끝을 표시합니다.
char** simpleParse(char* str, char* delimiter)
{
    //for strtok
    char* context = NULL;
    char* tmpStr;
    int i;
    //result: 2 dimension char array
    int length = strlen(str);
    char** outStrArr = (char**)malloc(sizeof(char*** length + 1);
    outStrArr[0= (char*)malloc(sizeof(char* STR_MAX);
 
    tmpStr = strtok_s(str, delimiter, &context);
    strcpy_s(outStrArr[0], strlen(tmpStr) + 1, tmpStr);
 
    i = 1;
    while(tmpStr = strtok_s(NULL, delimiter, &context)) {
        outStrArr[i] = (char*)malloc(sizeof(char* STR_MAX);
        strcpy_s(outStrArr[i], strlen(tmpStr) + 1, tmpStr);
        i++;
    }
    outStrArr[i] = NULL//nullptr로 배열의 끝을 표시합니다.
 
    return outStrArr;
}
cs


아까 그 구조랑 비슷하게 

char** 만드는 함수임 ^^


다른 건 strtok_s살짝 쓰까 놓은 거 뿐