看板 C_and_CPP 關於我們 聯絡資訊
大家好 目前我有一個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