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살짝 쓰까 놓은 거 뿐
하... 왤캐 복잡해 시발 이런거안나올듯 ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ °
근데 지금보니까 이거 메모리 낭비 쩐당 뭐 알게뭐야