Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 09:42

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



delete[] Frage

Discussion on delete[] Frage within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
delete[] Frage

Ich habe ein Problem mit dem delete[] Operator.
Hier mein code:
PHP Code:
char *Data;
int DataSize;
//hier code (DataSize ändert sich im Verlaufe dieses Stücks zu einer Variable > 0)

Data = new char [DataSize];

//hier werden Data werte zugewiesen

delete[] Data
mein Problem ist jetzt:
wenn ich im taskmanager den arbeitsspeicher meines prgrammes anschaue, steigt er bei der stelle Data = new char [DataSize]; an. is gutso, soll ja so sein . aber wenn ich ihn mit delete lösche passiert garnix! eigentlich müsse der wert des benutzten arbeitsspeichers doch auf den anfangswert zurückgehen, tut er aber nicht! wenn jezt der code im programm mehrmals aufgerufnen wird, (und DataSize dabei denselben wert hat) bleibt gleich wie bei dem ersten aufruf von Data = new char [DataSize];.
d.h. er entfernt den speicher doch nur er selber kann ihn ich auch wieder allokieren!
kann mir bitte jemand sagen was an dem code falsch ist?
kleinernascher4 is offline  
Old 03/24/2012, 16:22   #2
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Daran ist nichts falsch (mal abgesehen davon, dass du im Kommentar geschrieben hast "Variable < 0". Wenn das kein Fehler war, dann hast du das Problem bereits gefunden).
Ich denke du allokierst einfach zu wenig Speicher, als dass du das sehen könntest. Versuch mal 100mb und geb die dann wieder frei. Das solltest du sehen können.

Btw. du solltest in der Regel keine Arrays nutzen. Dafür ist std::vector zuständig.
Nightblizard is offline  
Old 03/24/2012, 17:22   #3
 
elite*gold: 0
Join Date: Nov 2009
Posts: 343
Received Thanks: 45
Versuchs mal mit einem smartPointer.

MfG
yihaaa is offline  
Old 03/25/2012, 10:54   #4
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
Quote:
Originally Posted by Nightblizard View Post
Btw. du solltest in der Regel keine Arrays nutzen. Dafür ist std::vector zuständig.
std::vector? smart pointer? wasn das O.O
kann das mal jemand erklären
kleinernascher4 is offline  
Old 03/25/2012, 15:53   #5
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Die Klasse Vektor ist Teil der Standard Template Libary. Sie ist eine Container-Klasse und wird mit Templates in C++ realisiert. Wenn du C++ mit einem Buch lernst, sollte das noch erklärt werden. (Refernz: )
jacky919 is offline  
Old 03/25/2012, 17:35   #6
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
ahhh, danke. werds mir mal angucken.

ich bin jedoch geradeeben wieder suf ei problem gestoßen...

ich benutze diesen array um eine datei zu übermitteln (benutze winsocket &TCP)
die beispieldatei hat eine größe von 488.448 Bytes und is ne exe. dh öffne ich die datei im binären modus.
zuerst übermittle ich die größe der datei
dann sende ich sie.
das problem dabei ist, dasnn nachdem ich sie gesendet habe und mit recv() empfangen habe nur SELTEN(!!) wirklich alle bytes empfangen werden. dh (habe ich bereits überprüft) die send() funktion senden 488.448 bytes die recv() funktion empfänget aber nur z.b.24343 Bytes. was mach ich falsch? (die übrigen bytes werden beim schreiben der datei übrigens nicht mit 0 ausgegeben sondern mit dieser absonderlichkeit: ð*º)
weiss jemand hierzu was?
kleinernascher4 is offline  
Old 03/25/2012, 17:38   #7
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Was gibt send() zurück?
jacky919 is offline  
Old 03/25/2012, 19:11   #8
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
send gibt 488.448 zurück, aber recv immer irgendwas anderes, nur manchmal 488.448.
kleinernascher4 is offline  
Old 03/25/2012, 19:17   #9
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Was für eine send Funktion nutzt du?
Die hier: ?
jacky919 is offline  
Old 03/25/2012, 19:20   #10
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
ja, genau die
kleinernascher4 is offline  
Old 03/25/2012, 19:21   #11
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Achso hatte was falsch verstanden
Was gibt nach dem Empfangen zurück?
jacky919 is offline  
Old 03/25/2012, 22:02   #12


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Originally Posted by yihaaa View Post
Versuchs mal mit einem smartPointer.

MfG
Inwiefern sollte das etwas ändern?

Verstehe ich das übrigens richtig? Du schreibst eine Netzwerkanwendung und kennst grundlegende Klassen wie std::vector nicht?

Hast du die Versendung der Datei auf deinem PC probiert oder läuft das wirklich über ein Netzwerk zu einem anderen PC/Server?
MrSm!th is offline  
Old 03/26/2012, 14:17   #13
 
elite*gold: 0
Join Date: Jul 2010
Posts: 40
Received Thanks: 1
habs auf meinem eigenen pc probiert(dh. server & client laufen auf eigenem pc). es werden alle daten gesendet aber nur manchmal alle empfangen, keine regelmäßigkeit (soweit ich das beurteilen kann).
kleinernascher4 is offline  
Old 03/26/2012, 14:55   #14
 
elite*gold: 50
Join Date: Mar 2010
Posts: 1,373
Received Thanks: 521
Wie gesagt, was gibt WSAGetLastError nach dem Empfangen zurück?
jacky919 is offline  
Old 03/26/2012, 15:09   #15


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Läufst du denn solange durch, bis recv 0 zurückgibt?
Es wird nicht immer alles in einem Rutsch empfangen.
MrSm!th is offline  
Reply


Similar Threads Similar Threads
HELP!!! CAN'T DELETE F-NET!!!
04/23/2011 - CrossFire - 5 Replies
Ok so this hack was detected couple day ago and I was using an injector call Black Dragon and so when I didn't open it or anything just starting crossfire normally. There is alway a pop up for f-net and sometime I got ban even though I didn't activated. So anyone know a way to help me solve this problem... (lose about 6-10 account)



All times are GMT +2. The time now is 09:42.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.