|
fbpsok 님이 쓰신 글 :
: 답변좀 부탁드립니다.
:
: int cnt = 0;
: double * wavedata;
: wavedata = new double;
:
: while(cnt < 10) {
: wavedata = NI5102.ReadWave(0); // wavedata 에 20000 개의 데이터가 저장됩니다.
: if(조건 == true) {
: break;
: }
: else {
: cnt++;
: }
: }
: delete wavedata;
:
: 이렇게 루틴을 구성했는데 여기서 포인터 변수 wavedata 에 대한 질문입니다
: 만약 while 문을 계속돌게 될때 wavedata 를 delete 안해 주어도 되는지요.
: 아니면 이렇게 해야되는지요
: while(cnt<10) {
: wavedata = new double;
: if(조건 == true){
: break;
: }
: else {
: cnt++;
: delete wavedata;
: }
: }
: delete wavedata;
:
임펠리테리입니다.
루프를 여러번 돈다고해서 동적으로 생성한 메모리 영역이 영향을 받지는 않습니다. 단지 논리적으로는, while 루프를 계속해서 도는 동안 wavedata에는 계속 데이터가 새로 써질 텐데, 루프내에서 새로 읽은 데이터를 처리하기만 한다면 문제는 없습니다.
그럼 참고하시길...
|