作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題[問題] 請問讀檔這樣寫有差別嘛?
時間Wed Aug 19 14:39:29 2009
大家好
目前我有一個binary file裡面全部填的是float值
所以我這樣讀
FILE * pFile;
pFile = fopen ( filePath , "rb" );
fseek (pFile , 0 , SEEK_END);
int lSize = ftell (pFile)/sizeof(float);
cout<<"file size:"<<lSize<<endl;
rewind (pFile);
lSize就是有幾個float了
之後我用
float *Tex=new float[lSize];
==================================
這邊我使用了迴圈初始Tex for(int q=0;q<lSize;q++)Tex[q]=0.0;
==================================
再把整個資料讀出來
fread (Tex,sizeof(float),lSize,pFile);
我要問的是
初始的那部分有必要寫嘛???
我遇到奇怪的bug是我程式執行10次 做同樣這段事情
可能有兩次會壞掉(我指的壞掉是我把這資料用glTexImage做成2D貼圖 會秀出怪顏色)
有時就成功
所以我加上初始化這段 並且在跑看看 目前沒出現壞掉的情形
我就懷疑是這個出問題
但是我覺得初始化沒什麼必要??????????????????
請問各位覺得呢!?
thx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.207.187
推 VictorTom:感覺沒必要....@_@" 08/19 14:53
→ yenhun:我覺得 你可以考慮加一段Code去印出每次fread出來的值 08/19 23:54
→ yenhun:是否都正確?!這樣也許有助於你找出問題?! 08/19 23:55
→ su31o4gj83:我覺得可以把初始化先拿掉, 然後把初值印出來 08/20 00:36
→ su31o4gj83:看看是不是初值的問題, 不過一般沒初使化的初值不都是 08/20 00:38
→ su31o4gj83:0嗎?? 配記憶體給變數前會先清空嗎 ?? 由誰決定 ?? 08/20 00:41
→ james732:C與C++並不保證未初始化的變數裡面會塞什麼鬼 08/20 00:43
推 VictorTom:不過原po的case預期fread應該要把該array都填上資料@_@" 08/20 00:49