Unklare Compiler Fehlermeldung



  • Habe folgendes geschrieben:

    class Data {
    	public:
    	static const int bufferSize = 22*sizeof(int)+3*sizeof(double)+100*sizeof(char);
    	char buffer[bufferSize];
    };
    
    class DataBuffer {
    	public:
    	std::vector<Data> data;
    ...
    

    In der CPP-Datei mache ich dann folgendes:

    FILE* file;
    		file = fopen( ss.str().c_str(), "wb");
    		for( size_t i = 0; i < data.size(); ++i )
    			fwrite( data[i].buffer, Data.bufferSize, 1, file ); //<--Zeile 47
    		fclose(file);
    

    Allerdings erhalte ich folgende Fehlermeldung, wobei mir nicht klar ist, was der Compiler meint:

    DataBuffer.cpp: In member function ‘void DataBuffer::flush()’:
    DataBuffer.cpp:47: error: expected primary-expression before ‘.’ token

    Was mache ich falsch? 😕



  • Versuchs mal so

    fwrite( data[i].buffer, Data::bufferSize, 1, file ); //<--Zeile 47
    


  • 😮 Oh Gott, der Baum vor lauter Wäldern... 🤡


  • Mod

    fwrite( data[i].buffer, data.bufferSize, 1, file );
    

    geht auch.


Log in to reply