<div style="text-align:left;">현재 c++에서 string과 동적할당을 공부하고 있는데요 제가 생각했던것이 처음에 address라는 포인터를 생성하고 new string[2]로 방2개를 만들고</div> <div style="text-align:left;">각각의 방에서도 new string[2]를 통해 방을 2개씩 생성해서 address[0]의 처음방에는 문자를 직접 입력받고 address[0]의 두번째 방과 </div> <div style="text-align:left;">address[1]의 첫번째 두번째방은 문자를 입력받지않고 바로 넣었습니다 그후 출력을 해보았고 마지막에 할당해제를 해주었는데요</div> <div style="text-align:left;"> </div> <div style="text-align:left;"><strong><font color="#ff0000">1)</font></strong>제가 궁금한 것이 맨마지막에 할당을 해제해주는 부분인데, 제가 한 것이 제대로 해제를 해준 것이 맞는지가 궁금합니다..</div> <div style="text-align:left;">왜냐하면 제가 문자를 넣는 부분이 address[0][0], adress[0][1]... 이런식인데 </div> <div style="text-align:left;">만약 해제를 해야 한다면 delete[] address[0][0], delete[] address[0][1]... 을 먼저 해줘야 된다고 생각했는대 이것을 넣게되면 오류가 </div> <div style="text-align:left;">걸리더군요 (할당해제 공부하면서 알았는데 할당해제를 안해 주는 것은 오류가 안되는대 할당을 안해준걸 해제하면 오류가 걸리더군요..)</div> <div style="text-align:left;"> </div> <div style="text-align:left;"><strong><font color="#ff0000">2)</font></strong>그리고 처음에 address[0][0]을 직접 입력받는 것으로 할때 getline();을 사용했는데 이것을 사용한 것도 적절 했는지가 궁금합니다</div> <div style="text-align:left;"> </div> <div style="text-align:left;"><strong><font color="#ff0000">3)</font></strong>또다른 궁금점이 제가 구글링을 하면서 찾은 자료가</div> <div style="text-align:left;"> </div> <div style="text-align:left;">1.gets();는 형식지정자를 신경쓰지 않아도되고 공백도 받으나 버퍼오버를 해결못한다<br>2.fgets(s,length,stdin); stdin이라는 파일포인터를 사용하며 length에 입력되는 버퍼크기를 줌으로써 버퍼오버문제를 해결할수있으나 리턴될경우 모 든 문자열이 입력됬는지 알수없다.<br>3.std::cin >> s; scanf와 비슷하지만 형식지정자가 잘못 됬을때 컴파일러가 에러를 잡아준다 하지만 공백문자에서 멈춤문제가 있다<br>4.cin.getline( s, sizeof( s ) ); fgets와 비슷하게 버퍼크기를 받는다<br>5.string s( istream_iterator( cin ), istream_iterator() ); 사전에 예상되는 문자열의 길이를 알필요가 없지만 공백문자는 무시한다<br>이상 입력받는 함수들은 복잡한 코딩으로 문제를 해결할수는 있다.<br><font color="#ff0000"><strong>6.getline( cin, s ); 바로 요놈이다 버퍼사이즈를 미리알필요도 없고 공백도 해결해주며 형식지정자를 신경쓰지 않아도 되며 이한줄로 모두 해결이 된다.</strong><br></font> 출처 <a target="_blank" href="http://hanjw8410.egloos.com/viewer/4056009" target="_blank">http://hanjw8410.egloos.com/viewer/4056009</a></div> <div style="text-align:left;"> </div> <div style="text-align:left;">인데 여기서 getline은 버퍼사이즈를 알필요가 없다고 되있는데 이말이 보통 포인터변수를 만들면 참조를 할수있는 변수를 넣거나 아예 동적할당을</div> <div style="text-align:left;">통해 배열처럼 사용할수가 있는데 이때 동적할당을 했을경우 할당해주는 사이즈를 아무렇게 해도 getline을 사용하면 사이즈를 알아서 맞춰 준다는 뜻인지가 궁금합니다.. </div> <div style="text-align:left;"> </div> <div style="text-align:left;">궁금한 것이 너무 많고 구글링 능력과 해석 능력이 떨어지다보니 질문도 너무 당황스러우실수도 있는데.. 혼자서 독학으로 공부하다보니 너무 어렵내요 ㅠㅠ; 두서 없이 쓴거 같은데 읽어 주셔서 감사합니다</div> <div style="text-align:left;"> <img class="chimg_photo" style="border-top:medium none;height:467px;border-right:medium none;border-bottom:medium none;border-left:medium none;width:958px;" alt="제목 없음.png" src="http://thimg.todayhumor.co.kr/upfile/201409/1410441616iVmZyAHGrM3ii4db5.png"></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.