0
我想將無符號整型*(也定義爲std :: size_t)類型的指針傳遞給MKL函數,該函數期望它是long long *是64位整數,我得到類型不兼容性錯誤。我在64位整數模式下使用MKL。任何幫助? 謝謝在C++中使用指向無符號長整型而不是長長整型的指針
我想將無符號整型*(也定義爲std :: size_t)類型的指針傳遞給MKL函數,該函數期望它是long long *是64位整數,我得到類型不兼容性錯誤。我在64位整數模式下使用MKL。任何幫助? 謝謝在C++中使用指向無符號長整型而不是長長整型的指針
#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;
}
任何原因你不只是施放它?請注意,如果這樣做,您可能需要首先檢查溢出並在必要時截斷它。 – Kevin
謝謝凱文。這解決了這個問題。我如何檢查溢出? – Tarek