Immer mehr private bytes :(



  • Der von Dir gezeigte Quellcode hat keinen gültigen Einstiegspunkt. Also wird es noch etwas drum herum geben was die Klasse benutzt.

    Generell kann man nur jemanden helfen, der auch hilfe haben will.



  • Sorry!

    Aber da passiert nichts besonderes.

    //// < M A I N  F U N C T I O N > ////////////////
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
    {
    	Window& window = Window::getInstance();
    	window.Init(hInstance);
    	window.Create();
    
    	SlowBob slowBob;
    
    	MSG msg = {0};
    
    	while(msg.message != WM_QUIT)
    	{
    	    if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) 
    		{
    			TranslateMessage(&msg);
    			DispatchMessage(&msg);
            }
    		else
    			slowBob.Tick();
        }
    
    	window.Destroy();
    
    	return 0;
    }
    


  • kann es sein das dein ListCtrl den Speicher 'frist' , weil nach 6 oder 8 Stunden tausende Zeilen drin stehen?



  • Wenn ein Programm immer mehr Speicher verbraucht, dann ist es in der Regel eine gute Idee, sich mal anzuschauen, was im Speicher nach einer Weile so drinsteht.
    Mach einfach ein Memory Dump mit einem Programm wie T-Search.



  • Damit hab ich nix am Hut. Ich werd's dennoch probieren.

    Wiegesagt, ich habe nur 3 std::vector's. Es kann ja nur an denen liegen, alles andere wird überschrieben!

    configRow für alle Zeilen in config.txt
    bannedRow für alle Zeilen in banned.txt

    ABER: Diese vectoren werden nur im Konstruktor aufgefüllt, danach passiert mit denen KEIN push_back mehr.

    Der letzte vector ist kickList, diese wird bis zu maximal 64x gepusht, und alle 10 Sekunden werden die Elemente wieder entfernt.

    Unverständlich 😞



  • Wenn es nur an den Vectoren liegen kann, weißt Du doch schon die Lösung, verstehe dann das nachfragen nicht.



  • Ich vermute es stark. Alle anderen Klassenmember werden doch nur überschrieben?...

    Deshalb bin ich ratlos.



  • Heut waren es wieder über 5MB nach einigen Stunden.

    Was kann noch so viel Speicher fressen außer die vectoren, die es ja codetechnisch gar nicht sein können? Schaut mal bei Tick(), sobald auch nur ein Element in kickList ist, wird Kick() aufgerufen, wo ohne Bedingung kickList.clear() aufgerufen wird.



  • Hey!

    Ich frage mal so: Welches dieser Klassenmitglieder könnte so viel Speicher fressen? Es sind doch nur die vectoren, oder was kann sonst einige Megabyte verschlingen?

    #ifndef INCLUDED_SLOWBOB
    #define INCLUDED_SLOWBOB
    
    //// < I N C L U D E S > /////////////////////////
    #include <windows.h>
    #include <mmsystem.h>
    #include <string>
    #include <fstream>
    #include <vector>
    
    //// < C L A S S  SlowBob > //////////////////////
    class SlowBob
    {
    	std::string windowTitle;
    
    	HWND hWnd;
    	HWND edit;
    	HWND list;
    
    	LRESULT currentRow;
    
    	TCHAR        recvText[128];
    	std::string  s;
    
    	std::string kickText;
    
    	short oldJoinedPlayers;
    	short joinedPlayers;
    	short bannedPlayers;
    
    	struct oldJoinedPlayer
    	{
    		std::string ip;
    		std::string id;
    	}; oldJoinedPlayer oldJoinedPlayer[64];
    
    	struct joinedPlayer
    	{
    		std::string ip;
    		std::string id;
    	}; joinedPlayer joinedPlayer[64];
    
    	std::ifstream configFile;
    	std::ifstream bannedFile;
    
    	std::vector<std::string> configRow;
    	std::vector<std::string> bannedIp;
    
    	std::string row;
    
    	std::vector<std::string> kickList;
    
    	float interval;
    	float current;
    	float elapsed;
    	float old;
    public:
    	SlowBob();
    	~SlowBob();
    
    	void Tick();
    	void Check();
    	void Kick();
    	void SaveOld();
    
    	void getJoinedPlayers();
    	void getJoinedPlayerIds();
    	void getJoinedPlayerIps();
    
    	void sendText(std::string);
    	void kickPlayer(std::string);
    };
    
    #endif // INCLUDED_SLOWBOB
    


  • Hey!

    Ich habe gerade jede halbe Stunde alle Klassenmembers in eine Datei geloggt und es ist nichts auffällig. Mit Speicher gucken und so hab ich's nicht drauf, null Ahnung. Also an den Klassenmitgliedern kann es nicht liegen.

    Wie kann noch so viel Speicher belegt werden?

    windowTitle: Vietcong v1.60 : BLACK PAJAMAS BLUE LAGUNA |FREE : 5425
    hWnd: 00030152
    edit: 00020144
    list: 00020146
    currentRow: 98
    recvText[0]: [
    recvText[1]: 1
    recvText[2]: 5
    recvText[3]: 0
    recvText[4]: 6
    recvText[5]: ]
    recvText[6]:  
    recvText[7]: -
    recvText[8]: -
    recvText[9]: c
    recvText[10]: !
    recvText[11]: _
    recvText[12]: J
    recvText[13]: o
    recvText[14]: -
    recvText[15]: -
    recvText[16]:  
    recvText[17]: k
    recvText[18]: i
    recvText[19]: l
    recvText[20]: l
    recvText[21]: s
    recvText[22]: :
    recvText[23]:  
    recvText[24]: 1
    recvText[25]: 2
    recvText[26]:  
    recvText[27]:  
    recvText[28]:  
    recvText[29]: d
    recvText[30]: e
    recvText[31]: a
    recvText[32]: t
    recvText[33]: h
    recvText[34]: s
    recvText[35]: :
    recvText[36]:  
    recvText[37]: 7
    recvText[38]:  
    recvText[39]:  
    recvText[40]:  
    recvText[41]: p
    recvText[42]: i
    recvText[43]: n
    recvText[44]: g
    recvText[45]: :
    recvText[46]:  
    recvText[47]: 9
    recvText[48]: 3
    recvText[49]:  
    recvText[50]: n
    recvText[51]: g
    recvText[52]: :
    recvText[53]:  
    recvText[54]: 1
    recvText[55]: 0
    recvText[56]:  
    recvText[57]: 6
    recvText[58]: 8
    recvText[59]:  
    recvText[60]:  
    recvText[61]:  
    recvText[62]:  
    recvText[63]:  
    recvText[64]:  
    recvText[65]:  
    recvText[66]:  
    recvText[67]:  
    recvText[68]:  
    recvText[69]:  
    recvText[70]:  
    recvText[71]:  
    recvText[72]:  
    recvText[73]:  
    recvText[74]:  
    recvText[75]:  
    recvText[76]:  
    recvText[77]:  
    recvText[78]:  
    recvText[79]:  
    recvText[80]:  
    recvText[81]:  
    recvText[82]:  
    recvText[83]:  
    recvText[84]:  
    recvText[85]:  
    recvText[86]:  
    recvText[87]:  
    recvText[88]:  
    recvText[89]:  
    recvText[90]:  
    recvText[91]:  
    recvText[92]:  
    recvText[93]:  
    recvText[94]:  
    recvText[95]:  
    recvText[96]:  
    recvText[97]:  
    recvText[98]:  
    recvText[99]:  
    recvText[100]:  
    recvText[101]:  
    recvText[102]:  
    recvText[103]:  
    recvText[104]:  
    recvText[105]:  
    recvText[106]:  
    recvText[107]:  
    recvText[108]:  
    recvText[109]:  
    recvText[110]:  
    recvText[111]:  
    recvText[112]:  
    recvText[113]:  
    recvText[114]:  
    recvText[115]:  
    recvText[116]:  
    recvText[117]:  
    recvText[118]:  
    recvText[119]:  
    recvText[120]:  
    recvText[121]:  
    recvText[122]:  
    recvText[123]:  
    recvText[124]:  
    recvText[125]:  
    recvText[126]:  
    recvText[127]:  
    s: [1506] --c!_Jo-- kills: 12   deaths: 7   ping: 93
    kickText: Clearing kick list
    oldJoinedPlayers: 6
    joinedPlayers: 6
    bannedPlayers: 93
    oldJoinedPlayer[0].ip: 89.58.24.128
    oldJoinedPlayer[1].ip: 192.168.0.5
    oldJoinedPlayer[2].ip: 87.122.219.241
    oldJoinedPlayer[3].ip: 212.195.36.74
    oldJoinedPlayer[4].ip: 80.188.186.184
    oldJoinedPlayer[5].ip: 145.53.126.226
    oldJoinedPlayer[6].ip: 
    oldJoinedPlayer[7].ip: 
    oldJoinedPlayer[8].ip: 
    oldJoinedPlayer[9].ip: 
    oldJoinedPlayer[10].ip: 
    oldJoinedPlayer[11].ip: 
    oldJoinedPlayer[12].ip: 
    oldJoinedPlayer[13].ip: 
    oldJoinedPlayer[14].ip: 
    oldJoinedPlayer[15].ip: 
    oldJoinedPlayer[16].ip: 
    oldJoinedPlayer[17].ip: 
    oldJoinedPlayer[18].ip: 
    oldJoinedPlayer[19].ip: 
    oldJoinedPlayer[20].ip: 
    oldJoinedPlayer[21].ip: 
    oldJoinedPlayer[22].ip: 
    oldJoinedPlayer[23].ip: 
    oldJoinedPlayer[24].ip: 
    oldJoinedPlayer[25].ip: 
    oldJoinedPlayer[26].ip: 
    oldJoinedPlayer[27].ip: 
    oldJoinedPlayer[28].ip: 
    oldJoinedPlayer[29].ip: 
    oldJoinedPlayer[30].ip: 
    oldJoinedPlayer[31].ip: 
    oldJoinedPlayer[32].ip: 
    oldJoinedPlayer[33].ip: 
    oldJoinedPlayer[34].ip: 
    oldJoinedPlayer[35].ip: 
    oldJoinedPlayer[36].ip: 
    oldJoinedPlayer[37].ip: 
    oldJoinedPlayer[38].ip: 
    oldJoinedPlayer[39].ip: 
    oldJoinedPlayer[40].ip: 
    oldJoinedPlayer[41].ip: 
    oldJoinedPlayer[42].ip: 
    oldJoinedPlayer[43].ip: 
    oldJoinedPlayer[44].ip: 
    oldJoinedPlayer[45].ip: 
    oldJoinedPlayer[46].ip: 
    oldJoinedPlayer[47].ip: 
    oldJoinedPlayer[48].ip: 
    oldJoinedPlayer[49].ip: 
    oldJoinedPlayer[50].ip: 
    oldJoinedPlayer[51].ip: 
    oldJoinedPlayer[52].ip: 
    oldJoinedPlayer[53].ip: 
    oldJoinedPlayer[54].ip: 
    oldJoinedPlayer[55].ip: 
    oldJoinedPlayer[56].ip: 
    oldJoinedPlayer[57].ip: 
    oldJoinedPlayer[58].ip: 
    oldJoinedPlayer[59].ip: 
    oldJoinedPlayer[60].ip: 
    oldJoinedPlayer[61].ip: 
    oldJoinedPlayer[62].ip: 
    oldJoinedPlayer[63].ip: 
    oldJoinedPlayer[0].id: 1506
    oldJoinedPlayer[1].id: 1485
    oldJoinedPlayer[2].id: 1508
    oldJoinedPlayer[3].id: 1509
    oldJoinedPlayer[4].id: 1511
    oldJoinedPlayer[5].id: 1513
    oldJoinedPlayer[6].id: 
    oldJoinedPlayer[7].id: 
    oldJoinedPlayer[8].id: 
    oldJoinedPlayer[9].id: 
    oldJoinedPlayer[10].id: 
    oldJoinedPlayer[11].id: 
    oldJoinedPlayer[12].id: 
    oldJoinedPlayer[13].id: 
    oldJoinedPlayer[14].id: 
    oldJoinedPlayer[15].id: 
    oldJoinedPlayer[16].id: 
    oldJoinedPlayer[17].id: 
    oldJoinedPlayer[18].id: 
    oldJoinedPlayer[19].id: 
    oldJoinedPlayer[20].id: 
    oldJoinedPlayer[21].id: 
    oldJoinedPlayer[22].id: 
    oldJoinedPlayer[23].id: 
    oldJoinedPlayer[24].id: 
    oldJoinedPlayer[25].id: 
    oldJoinedPlayer[26].id: 
    oldJoinedPlayer[27].id: 
    oldJoinedPlayer[28].id: 
    oldJoinedPlayer[29].id: 
    oldJoinedPlayer[30].id: 
    oldJoinedPlayer[31].id: 
    oldJoinedPlayer[32].id: 
    oldJoinedPlayer[33].id: 
    oldJoinedPlayer[34].id: 
    oldJoinedPlayer[35].id: 
    oldJoinedPlayer[36].id: 
    oldJoinedPlayer[37].id: 
    oldJoinedPlayer[38].id: 
    oldJoinedPlayer[39].id: 
    oldJoinedPlayer[40].id: 
    oldJoinedPlayer[41].id: 
    oldJoinedPlayer[42].id: 
    oldJoinedPlayer[43].id: 
    oldJoinedPlayer[44].id: 
    oldJoinedPlayer[45].id: 
    oldJoinedPlayer[46].id: 
    oldJoinedPlayer[47].id: 
    oldJoinedPlayer[48].id: 
    oldJoinedPlayer[49].id: 
    oldJoinedPlayer[50].id: 
    oldJoinedPlayer[51].id: 
    oldJoinedPlayer[52].id: 
    oldJoinedPlayer[53].id: 
    oldJoinedPlayer[54].id: 
    oldJoinedPlayer[55].id: 
    oldJoinedPlayer[56].id: 
    oldJoinedPlayer[57].id: 
    oldJoinedPlayer[58].id: 
    oldJoinedPlayer[59].id: 
    oldJoinedPlayer[60].id: 
    oldJoinedPlayer[61].id: 
    oldJoinedPlayer[62].id: 
    oldJoinedPlayer[63].id: 
    joinedPlayer[0].ip: 
    joinedPlayer[1].ip: 
    joinedPlayer[2].ip: 
    joinedPlayer[3].ip: 
    joinedPlayer[4].ip: 
    joinedPlayer[5].ip: 
    joinedPlayer[6].ip: 
    joinedPlayer[7].ip: 
    joinedPlayer[8].ip: 
    joinedPlayer[9].ip: 
    joinedPlayer[10].ip: 
    joinedPlayer[11].ip: 
    joinedPlayer[12].ip: 
    joinedPlayer[13].ip: 
    joinedPlayer[14].ip: 
    joinedPlayer[15].ip: 
    joinedPlayer[16].ip: 
    joinedPlayer[17].ip: 
    joinedPlayer[18].ip: 
    joinedPlayer[19].ip: 
    joinedPlayer[20].ip: 
    joinedPlayer[21].ip: 
    joinedPlayer[22].ip: 
    joinedPlayer[23].ip: 
    joinedPlayer[24].ip: 
    joinedPlayer[25].ip: 
    joinedPlayer[26].ip: 
    joinedPlayer[27].ip: 
    joinedPlayer[28].ip: 
    joinedPlayer[29].ip: 
    joinedPlayer[30].ip: 
    joinedPlayer[31].ip: 
    joinedPlayer[32].ip: 
    joinedPlayer[33].ip: 
    joinedPlayer[34].ip: 
    joinedPlayer[35].ip: 
    joinedPlayer[36].ip: 
    joinedPlayer[37].ip: 
    joinedPlayer[38].ip: 
    joinedPlayer[39].ip: 
    joinedPlayer[40].ip: 
    joinedPlayer[41].ip: 
    joinedPlayer[42].ip: 
    joinedPlayer[43].ip: 
    joinedPlayer[44].ip: 
    joinedPlayer[45].ip: 
    joinedPlayer[46].ip: 
    joinedPlayer[47].ip: 
    joinedPlayer[48].ip: 
    joinedPlayer[49].ip: 
    joinedPlayer[50].ip: 
    joinedPlayer[51].ip: 
    joinedPlayer[52].ip: 
    joinedPlayer[53].ip: 
    joinedPlayer[54].ip: 
    joinedPlayer[55].ip: 
    joinedPlayer[56].ip: 
    joinedPlayer[57].ip: 
    joinedPlayer[58].ip: 
    joinedPlayer[59].ip: 
    joinedPlayer[60].ip: 
    joinedPlayer[61].ip: 
    joinedPlayer[62].ip: 
    joinedPlayer[63].ip: 
    joinedPlayer[0].id: 
    joinedPlayer[1].id: 
    joinedPlayer[2].id: 
    joinedPlayer[3].id: 
    joinedPlayer[4].id: 
    joinedPlayer[5].id: 
    joinedPlayer[6].id: 
    joinedPlayer[7].id: 
    joinedPlayer[8].id: 
    joinedPlayer[9].id: 
    joinedPlayer[10].id: 
    joinedPlayer[11].id: 
    joinedPlayer[12].id: 
    joinedPlayer[13].id: 
    joinedPlayer[14].id: 
    joinedPlayer[15].id: 
    joinedPlayer[16].id: 
    joinedPlayer[17].id: 
    joinedPlayer[18].id: 
    joinedPlayer[19].id: 
    joinedPlayer[20].id: 
    joinedPlayer[21].id: 
    joinedPlayer[22].id: 
    joinedPlayer[23].id: 
    joinedPlayer[24].id: 
    joinedPlayer[25].id: 
    joinedPlayer[26].id: 
    joinedPlayer[27].id: 
    joinedPlayer[28].id: 
    joinedPlayer[29].id: 
    joinedPlayer[30].id: 
    joinedPlayer[31].id: 
    joinedPlayer[32].id: 
    joinedPlayer[33].id: 
    joinedPlayer[34].id: 
    joinedPlayer[35].id: 
    joinedPlayer[36].id: 
    joinedPlayer[37].id: 
    joinedPlayer[38].id: 
    joinedPlayer[39].id: 
    joinedPlayer[40].id: 
    joinedPlayer[41].id: 
    joinedPlayer[42].id: 
    joinedPlayer[43].id: 
    joinedPlayer[44].id: 
    joinedPlayer[45].id: 
    joinedPlayer[46].id: 
    joinedPlayer[47].id: 
    joinedPlayer[48].id: 
    joinedPlayer[49].id: 
    joinedPlayer[50].id: 
    joinedPlayer[51].id: 
    joinedPlayer[52].id: 
    joinedPlayer[53].id: 
    joinedPlayer[54].id: 
    joinedPlayer[55].id: 
    joinedPlayer[56].id: 
    joinedPlayer[57].id: 
    joinedPlayer[58].id: 
    joinedPlayer[59].id: 
    joinedPlayer[60].id: 
    joinedPlayer[61].id: 
    joinedPlayer[62].id: 
    joinedPlayer[63].id: 
    configRow[0]: Vietcong v1.60 : BLACK PAJAMAS BLUE LAGUNA |FREE : 5425
    configRow[1]: 10
    configRow[2]: Clearing kick list
    bannedIp[0]: 81.183.58.181
    bannedIp[1]: 151.44.51.88
    bannedIp[2]: 84.161.195.226
    bannedIp[3]: 84.223.72.156
    bannedIp[4]: 213.191.98.88
    bannedIp[5]: 62.214.211.45
    bannedIp[6]: 84.42.231.57
    bannedIp[7]: 82.99.138.2
    bannedIp[8]: 84.155.213.112
    bannedIp[9]: 80.141.47.30
    bannedIp[10]: 87.78.156.112
    bannedIp[11]: 62.245.118.234
    bannedIp[12]: 89.102.153.220
    bannedIp[13]: 86.49.59.238
    bannedIp[14]: 86.83.178.34
    bannedIp[15]: 213.220.225.156
    bannedIp[16]: 213.51.24.14
    bannedIp[17]: 85.145.54.178
    bannedIp[18]: 80.134.18.124
    bannedIp[19]: 84.145.237.113
    bannedIp[20]: 89.12.3.71
    bannedIp[21]: 83.15.106.66
    bannedIp[22]: 80.60.25.204
    bannedIp[23]: 86.87.147.212
    bannedIp[24]: 88.72.24.149
    bannedIp[25]: 85.70.117.116
    bannedIp[26]: 212.96.183.83
    bannedIp[27]: 84.130.242.103
    bannedIp[28]: 62.104.142.252
    bannedIp[29]: 82.16.86.147
    bannedIp[30]: 84.57.7.161
    bannedIp[31]: 80.141.48.7
    bannedIp[32]: 80.250.14.206
    bannedIp[33]: 89.176.186.246
    bannedIp[34]: 62.39.231.56
    bannedIp[35]: 195.146.96.148
    bannedIp[36]: 89.102.149.223
    bannedIp[37]: 84.161.147.114
    bannedIp[38]: 89.102.77.159
    bannedIp[39]: 86.80.194.161
    bannedIp[40]: 89.102.77.159
    bannedIp[41]: 81.165.232.32
    bannedIp[42]: 217.236.239.81
    bannedIp[43]: 86.87.147.212
    bannedIp[44]: 62.245.118.234
    bannedIp[45]: 62.204.252.236
    bannedIp[46]: 82.60.166.85
    bannedIp[47]: 88.103.55.201
    bannedIp[48]: 84.6.178.244
    bannedIp[49]: 88.73.68.107
    bannedIp[50]: 80.188.99.90
    bannedIp[51]: 80.163.244.21
    bannedIp[52]: 86.201.89.202
    bannedIp[53]: 85.54.240.31
    bannedIp[54]: 84.5.94.84
    bannedIp[55]: 84.90.71.189
    bannedIp[56]: 84.139.93.77
    bannedIp[57]: 82.74.212.134
    bannedIp[58]: 172.180.30.181
    bannedIp[59]: 88.72.33.211
    bannedIp[60]: 91.127.156.102
    bannedIp[61]: 88.83.229.3
    bannedIp[62]: 87.64.241.102
    bannedIp[63]: 84.155.238.108
    bannedIp[64]: 87.123.199.128
    bannedIp[65]: 86.49.104.40
    bannedIp[66]: 83.143.208.81
    bannedIp[67]: 213.220.231.30
    bannedIp[68]: 89.48.185.94
    bannedIp[69]: 172.174.252.66
    bannedIp[70]: 84.136.94.3
    bannedIp[71]: 89.48.149.104
    bannedIp[72]: 84.150.86.244
    bannedIp[73]: 80.98.10.111
    bannedIp[74]: 84.158.229.138
    bannedIp[75]: 217.255.211.95
    bannedIp[76]: 89.12.3.190
    bannedIp[77]: 217.88.158.155
    bannedIp[78]: 89.53.188.41
    bannedIp[79]: 84.220.37.22
    bannedIp[80]: 213.226.230.186
    bannedIp[81]: 84.132.236.9
    bannedIp[82]: 89.102.164.79
    bannedIp[83]: 81.62.223.43
    bannedIp[84]: 62.214.251.18
    bannedIp[85]: 212.111.21.28
    bannedIp[86]: 80.109.244.79
    bannedIp[87]: 83.175.144.169
    bannedIp[88]: 80.128.130.111
    bannedIp[89]: 62.104.145.145
    bannedIp[90]: 89.57.200.212
    bannedIp[91]: 213.182.113.3
    bannedIp[92]: 87.78.193.151
    row: 87.78.193.151
    interval: 10
    current: 81122.6
    elapsed: 9.19531
    elapsed2: 1800
    old: 81122.6
    

    Was kann nur 8MB und immer mehr belegen?



  • OK, Freund der Blasmusik & Gartenzwerge. Ich hab deinen Fehler gefunden. Bekomm ich jetzt ein Bier? Naja, egal. Du kannst nicht einfach eine Klasse oder Struct die ein std::string als Member hat mittels memset "löschen" und dann erwarten dass noch irgendwas geht. Und natürlich kannst du das auch nicht mit einem oder mehreren Arrays von Elementen so einer Klasse machen (struct oldJoinedPlayer und so, ring a bell?). Es ist fast schon ein Wunder dass das Programm dabei nicht abschmiert.



  • Ouch. Ich war mir ohnehin unsicher.

    Wie macht man es denn richtig?



  • "richtig" wäre einen std::vector<DeineStruktur> zu nehmen, dann fällt auch das 1000 Einträge Limit weg. Oder aber du legst ein "DeineStruktur temp;" an, und übergibst das an std::fill. Auf jeden Fall sollte irgendwie der operator = verwendet werden, direkt oder indirekt.



  • Hey!

    Und deshalb werden 8MB und mehr belegt?
    Ich habe schon umgebaut.

    Wie setze ich alle Elemente eines Klassen-Arrays auf 0?
    Das wollte ich durch memset erreichen, geht anscheinend anders...

    MfG



  • std::fill (Array.begin(), Array.end(), 0);

    (inkludieren von <algorithm> nicht vergessen!)



  • struct joinedPlayer
    	{
    		std::string ip;
    		std::string id;
    	}; joinedPlayer joinedPlayer[64];
    

    Hier fange ich doch nichts mit std::fill an?



  • Hello schrieb:

    struct joinedPlayer
    	{
    		std::string ip;
    		std::string id;
    	}; joinedPlayer joinedPlayer[64];
    

    Hier fange ich doch nichts mit std::fill an?

    Falsch. Hier fängst du nichts mit 0 an.

    Edit:
    Du kannst die Initialisierung von ip und id über einen Konstruktor steuern.



  • Nun, dann werde ich mal alles zu vectoren umbauen...



  • Hey!

    struct joinedPlayer
    	{
    		std::string ip;
    		std::string id;
    	}; std::vector<joinedPlayer> joinedPlayer;
    
    	std::fill(joinedPlayer.begin(), joinedPlayer.end(), 0);
    

    Funktioniert nicht.

    1>------ Build started: Project: SlowBob, Configuration: Release Win32 ------
    1>Compiling...
    1>SlowBob.cpp
    1>C:\Programme\Microsoft Visual Studio 8\VC\include\xutility(2726) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)
    1>        e:\c++\gold\slowbob\slowbob\SlowBob.h(51): could be 'SlowBob::oldJoinedPlayer &SlowBob::oldJoinedPlayer::operator =(const SlowBob::oldJoinedPlayer &)'
    1>        while trying to match the argument list '(SlowBob::oldJoinedPlayer, const int)'
    1>        C:\Programme\Microsoft Visual Studio 8\VC\include\xutility(2754) : see reference to function template instantiation 'void std::_Fill<std::_Vector_iterator<_Ty,_Alloc>,int>(_FwdIt,_FwdIt,const int &)' being compiled
    1>        with
    1>        [
    1>            _Ty=SlowBob::oldJoinedPlayer,
    1>            _Alloc=std::allocator<SlowBob::oldJoinedPlayer>,
    1>            _FwdIt=std::_Vector_iterator<SlowBob::oldJoinedPlayer,std::allocator<SlowBob::oldJoinedPlayer>>
    1>        ]
    1>        .\SlowBob.cpp(52) : see reference to function template instantiation 'void std::fill<std::_Vector_iterator<_Ty,_Alloc>,int>(_FwdIt,_FwdIt,const int &)' being compiled
    1>        with
    1>        [
    1>            _Ty=SlowBob::oldJoinedPlayer,
    1>            _Alloc=std::allocator<SlowBob::oldJoinedPlayer>,
    1>            _FwdIt=std::_Vector_iterator<SlowBob::oldJoinedPlayer,std::allocator<SlowBob::oldJoinedPlayer>>
    1>        ]
    1>C:\Programme\Microsoft Visual Studio 8\VC\include\xutility(2726) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)
    1>        e:\c++\gold\slowbob\slowbob\SlowBob.h(57): could be 'SlowBob::joinedPlayer &SlowBob::joinedPlayer::operator =(const SlowBob::joinedPlayer &)'
    1>        while trying to match the argument list '(SlowBob::joinedPlayer, const int)'
    1>        C:\Programme\Microsoft Visual Studio 8\VC\include\xutility(2754) : see reference to function template instantiation 'void std::_Fill<std::_Vector_iterator<_Ty,_Alloc>,int>(_FwdIt,_FwdIt,const int &)' being compiled
    1>        with
    1>        [
    1>            _Ty=SlowBob::joinedPlayer,
    1>            _Alloc=std::allocator<SlowBob::joinedPlayer>,
    1>            _FwdIt=std::_Vector_iterator<SlowBob::joinedPlayer,std::allocator<SlowBob::joinedPlayer>>
    1>        ]
    1>        .\SlowBob.cpp(53) : see reference to function template instantiation 'void std::fill<std::_Vector_iterator<_Ty,_Alloc>,int>(_FwdIt,_FwdIt,const int &)' being compiled
    1>        with
    1>        [
    1>            _Ty=SlowBob::joinedPlayer,
    1>            _Alloc=std::allocator<SlowBob::joinedPlayer>,
    1>            _FwdIt=std::_Vector_iterator<SlowBob::joinedPlayer,std::allocator<SlowBob::joinedPlayer>>
    1>        ]
    1>Main.cpp
    1>Build log was saved at "file://e:\C++\Gold\SlowBob\SlowBob\Release\BuildLog.htm"
    1>SlowBob - 2 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    


  • Kann ja auch nicht. Genau lesen hilf meistens. In diesem Fall den letzten Beitrag von Konstruktör.


Anmelden zum Antworten