커다란 시스템 설정이지만 다소 단순합니다. void*
어레이에 데이터를 저장합니다. 정확성 정도에 따라 저장되는 데이터가 float
또는 double
사이에서 달라질 수 있습니다.C++ delete [] void * curiosity
방금 delete [] data
은 MinGW를 사용하여 warning: deleting 'void*' is undefined [enabled by default]
을 발생시킵니다. data
이 float*
또는 double*
일 경우 다른 변수를 알려주지 만 사용하는 데 문제가 있습니까?
다른 말로하면 메모리 누수 나 다른 오류/손상이 컴파일러에서 발견되지 않는 것에 대한 걱정없이 휴면 코드를 사용할 수 있습니까?
double* d_data = new double[length];
data = (void*)d_data;
delete [] (float*)data;
대단히 많이 보인 코드는 [정의되지 않은 동작] (http://en.wikipedia.org/wiki/Undefined_behavior)을 호출합니다. – ildjarn
IMHO - 당신이 캐스팅 할 때 당신은 보통 뭔가 잘못하고 있습니다. 조심스럽게 주조하십시오. –
data = 새 부호없는 char [length * sizeof (double)]; delete [] (unsigned char *) 데이터; – cppguy