문자열합치기 질문드려요
글쓴이: impactlife / 작성시간: 월, 2013/07/29 - 9:21오후
#include
using namespace std;
char* Add(char *a, char *b){
char *temp = new char[strlen(a) + strlen(b) + 1];
strcpy(temp, a);
strcat(temp, b);
return temp;
}
void main(){
char* str = Add("가나다", "마바사");
cout << str << endl;
delete[] str;
}
문자열 합치기 함수인데요.
동적으로 문자열을 만들다보니 main 함수에서 따로 delete 를 해주게 됩니다.
클래스로 하면 파괴자에서 delete하면 되는데 함수에서는 저렇게 밖에 안될까요?
Add 함수에서 파괴를 하고 싶은데 리턴은 해야하고...
Forums:
부적절한 예제?
그런고민 하지 말라고 string이 있다고 생각합니다.
string은 안되고 굳이 char*를 꼭 사용해야 하면 C++보다는 C로 C의 방식으로 하는게 낫겠죠.
네
하지만 지금 문법 공부중인 초보라서요 ^^
확실히 알고 넘어가고 싶어서 질문드렸습니다.
원래 저렇게 쓰는건지...
c++이면 std::auto_ptr 쓰세요.
c++이면 std::auto_ptr 쓰세요.
아차 배열에는 못쓰는데... auto_ptr 비슷하게
아차 배열에는 못쓰는데...
auto_ptr 비슷하게 템플릿 만들어 쓰세요.
네..
결국 외부에서 포인터를 전달하고 외부에서 파괴하는 방법밖에 없는가 보네요.
지금 템플릿 공부하고 있는데 auto_ptr 이 뭔지도 봐야겠네요.
감사합니다.
댓글 달기