AAA구조체를 new하고 char*로 형변환후 char*를 delete할경우 문제가 될수 있나요? 답변 부탁드리겠습니다. 수고하세요.
struct AAA { int aa; int bb; char cc[1024]; };
int _tmain(int argc, _TCHAR* argv[]) { AAA *aaa = new AAA; char *bbb = (char*)aaa;
delete bbb;
return 0; }
char단위로 제어가 되는 구조체라면 별문제가 없어 보일 수도 있지만
아마도 문제가 생기지 싶습니다.
delete 와 delete [] 의 차이점을 아신다면요.
'당연히' 문제가 있을수 있습니다. 어째서 C++에서는 malloc/free가 아닌 new/delete를 쓰는지 생각해보세요.
답변 감사합니다. 그럼 이런경우는 어떨까요? 답변 감사합니다. 그럼 아래처럼 사용시에는 어떤가요? 통신모듈을 만드는데 소켓전송시 char버퍼에 구조체를 담아보낼려고 하다보니 아래처럼 써야할것 같은데요..
int _tmain(int argc, _TCHAR* argv[]) { char *aaa = new char[sizeof(AAA)];
AAA *bbb = (AAA*)aaa; bbb.aa = 100; bbb.bb = 1000; strcpy(bbb.cc,"test.."); delete[] aaa; return 0; }
직렬화를 하세요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
글쎄요?
char단위로 제어가 되는 구조체라면 별문제가 없어 보일 수도 있지만
아마도 문제가 생기지 싶습니다.
delete 와 delete [] 의 차이점을 아신다면요.
'당연히' 문제가
'당연히' 문제가 있을수 있습니다.
어째서 C++에서는 malloc/free가 아닌 new/delete를 쓰는지 생각해보세요.
답변감사합니다.
답변 감사합니다. 그럼 이런경우는 어떨까요?
답변 감사합니다. 그럼 아래처럼 사용시에는 어떤가요? 통신모듈을 만드는데 소켓전송시 char버퍼에 구조체를 담아보낼려고 하다보니 아래처럼 써야할것 같은데요..
struct AAA
{
int aa;
int bb;
char cc[1024];
};
int _tmain(int argc, _TCHAR* argv[])
{
char *aaa = new char[sizeof(AAA)];
AAA *bbb = (AAA*)aaa;
bbb.aa = 100;
bbb.bb = 1000;
strcpy(bbb.cc,"test..");
delete[] aaa;
return 0;
}
직렬화를 하세요.
직렬화를 하세요.
댓글 달기