我讀取與fstream的二進制文件和存儲在字符數組的信息二進制文件:讀與fstream的
int dataLength = 32;
int counter = 0;
char data[dataLength];
char PMTone[dataLength/4];
std::fstream *fs = new std::fstream(inputFileName,std::ios::in|std::ios::binary);
fs->read((char *)&data, dataLength);
//of the 32 characters in data[], I need first, 5th etc elements:
//fill first pmt info
for(int i=0; i<(dataLength/4); i++){
PMTone[i]=data[counter];
counter+=4;
}
現在我設置PMTone [7]是一個作爲測試:
PMTone[7] = "a";
我得到的錯誤:
mdfTree.cpp:92:21: error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
我不明白,爲什麼在PMTone元素[]是指向字符,當PMT一個[]被定義爲一個字符數組。
當我把PMTone []作爲指針數組字符:
(*PMTone)[7] = "a";
我得到另一個錯誤,我不明白:
mdfTree.cpp:91:18: error: invalid types ‘char[int]’ for array subscript
這似乎暗示編譯器並不認爲PMTone []是一個數組,而只是一個指向char的指針。
任何人都可以闡明這裏發生的事情嗎?爲什麼PMTone []成爲指向字符的指針數組?