2011-09-01 5 views
0

부호없는 정수 * (std :: size_t라고도 정의 됨) 유형의 포인터를 long long *이 될 것으로 기대하는 MKL 함수에 전달하려고합니다. 64 비트 정수인 경우 유형 비 호환성 오류가 발생합니다. 64 비트 정수 모드에서 MKL을 사용합니다. 어떤 도움이 필요합니까? 감사합니다.C++에서 long long 정수 대신 unsigned long 정수에 대한 포인터 사용

+1

아무 이유없이 전송 했습니까? 그럴 경우 먼저 오버플로가 있는지 확인하고 필요한 경우 오버플로를자를 수 있습니다. – Kevin

+0

감사합니다. 그로 인해 문제가 해결되었습니다. 오버플로를 어떻게 확인할 수 있습니까? – Tarek

답변

0
#include <limits.h> 

int main() { 
    unsigned int i = UINT_MAX; 
    unsigned int iptr = &i 

    // In writing this, I realized that you have to change the original 
    // or declare a new llong, but remember that 
    // returning a pointer to a local is bad. Change the original if you can. 
    if(i > LLONG_MAX) i = LLONG_MAX; 
    long long *lptr = (long long *)i; 
} 
관련 문제