將unsigned int
轉換爲double
的正確方法是什麼?我需要這個數據設置爲QCPCustomPlot
,因爲它需要QVector<double>
精確地作爲創建圖形的參數。C++ unsigned int雙重轉換
編輯:傻傻的我。 '內存泄漏'錯誤問題是由於我錯誤地初始化了QVector<double> x(time), y(ipv4int)
而引起的。將time
的值更改爲與ipv4int
(數據發生頻率)相同,並且x
和y
正確匹配。
用time
變量完成,現在是關於轉換的實際問題。如何將其轉換爲double
格式,其格式爲1855919686
,而不是格式爲1.85592e+09
?
QCustomPlot需要double
但似乎QVector<double>
不能像1.85592e值取+ 09
更新代碼:
QVector<double> x(i), y(totalIP); //i=236052
for(int o = 0; o <= i; o++){
double dSec = arrayIPxTime[o][0] - startSecond; //arrayIPTime[o][0] holds time in second
double dMin = dSec/60;
double ipv4addr = arrayIPxTime[o][1]; //arrayIPTime[o][0] holds ipaddr in integer format
x[o] = dMin;
//y[o] = ipv4addr; this is the line that causes crash.
qDebug()<<"Count "<<o<<" time "<< x[o] <<" ipv4 "<<ipv4addr<<" arrayIPxTime[o][1] "<<arrayIPxTime[o][1];
}
電流輸出:
Count 236048 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
Count 236049 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
Count 236050 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
Count 236051 time 62.3167 ipv4 1.85592e+09 arrayIPxTime[o][1] 1855919686
_「將unsigned int變量轉換爲double導致內存泄漏」_您是如何得到有關此通知的?通常情況並非如此。 –
你需要提供更多關於發生的事情的細節。一個簡單的轉換,本身,_不會導致內存泄漏。這完全是一個獨立的問題。 –