2013-03-20 1 views
0

이봐 기능이 밀리 초 걸리는 시간을 계산하는 QueryPerformanceCounter에를 사용하여 메신저하지만 난이 런타임 오류가 점점 오전 :QueryPerformanceCounter에 런타임 오류

Run-Time Check Failure #2 - Stack around variable 'time1' is corrupted. 

필자 검색하고 모든 노력을하고 난 알아낼 수 없습니다 이 오류. 아무도 나를 도울 수 있습니까? 7

void print() 
{ 
    unsigned long int time1 = 0; 
    unsigned long int time2 = 0; 
    QueryPerformanceCounter((LARGE_INTEGER*)&time1); 
    //Loop through the elements in the array. 
    for(int index = 0; index < num_elements; index++) 
    { 
     //Print out the array index and the arrays elements. 
     cout <<"Index: " << index << "\tElement: " << m_array[index]<<endl; 
    } 
    //Prints out the number of elements and the size of the array. 
    cout<< "\nNumber of elements: " << num_elements; 
    cout<< "\nSize of the array: " << size << "\n"; 

    QueryPerformanceCounter((LARGE_INTEGER*)&time2); 
    cout << "\nTime Taken : " << time1 - time2 <<endl; 
} 
+0

중복 가능성 [사용 방법 QueryPerformanceCounter에?] (http://stackoverflow.com/questions/1739259/how-to- use-queryperformancecounter) –

답변

1

문제가 QueryPerformanceCounter에 해당 주소를 전달할 때

QueryPerformanceCounter((LARGE_INTEGER*)&time1);unsigned long int를 사용하지 마십시오 여기에 있습니다 : 여기에 그런 일이 코드입니다.

unsigned long int은 32 비트 이상을 보장합니다.

를 사용하여 64 비트 변수

#include <cstdint> // + include this 
int64_t 

또는

long long int 
+0

불행히도 여전히 오류가 발생합니다. – Becca

+0

@Bca 긴 long int를 사용해보십시오. 이 코드에는 다른 문제가 없습니다. –

+0

죄송합니다. 내 잘못을 잊어 버렸습니다 &. 나는 시간 동안 마이너스 숫자를 얻고있다 : S. – Becca