VC 6 powstrzymać !!!!!!!!

A

Ahmed Osama

Guest
hi all

VC zatrzymać przy każdym uruchomieniu funkcji po .....

Funkcja kończy się bez błędu, ale VC zatrzymanie po zakończeniu ..test ()(char * temp = new char [4];temp = "123";
__asm(
pushad;pushfd;mov edx, temp;popfd;popad;)
delete [] temp;

)Wszelkie wiedzieć whyyyy!
 
Awarie kod 'delete' operator!

Spróbuj tego ...

Kod:/ / Template deklaracji 'strcpy' function

# include <string.h>test ()

(

char * temp = new char [4];/ / Z ...

/ / Temp = "123";

/ / Przypisuje się "temp" wskaźnik statycznej tablicy "123" ...

/ / Nie skopiować ciąg "123" w te przydzielonej pamięci!

/ / ...

/ / I straci poprzedni adres pamięć przydzieloną przez "nowy" operator

/ /, A zatem nie można go usunąć ...
o)/ / Skopiować napis "123" w 'temp' tablicy przyznane z operatorem "wykorzystanie nowych" ...

strcpy (temp, "123");__asm

(pushad;

pushfd;

mov edx, temp;

popfd;

popad;

)delete temp;)

 
u are rightPoprawiłem kod, ale nadal VC powstrzymać kiedy nazywanie tej funkcji, a czasami nawet jeśli nie nazywają go !!!!!!!!!!!!Widzę po usunięciu części ASM, to nie wstrzymujetest ()

char* temp=new char [3] ;

(Char
* temp = new char [3];
temp [0] = '1 ';
temp [1] = '2 ';
temp [2] = '\ 0';

__asm(pushad;pushfd;mov edx, temp;popfd;popad;
)

delete [] temp;
)

 
I tryed ten kod na mój VisualC 6.0 SP6 (w konsoli aplikacji Win32) ...i działają dobrze ...musi pracować o)

Kod:/ Czy to ten?

# include <malloc.h>int test ()

(

char * temp = new char [3];

/ / sprawdź PTR NULL ...
w przypadku "nowych" nie działa ...

if (temp == NULL) return -1;

temp [0] = '1 ';

temp [1] = '2 ';

temp [2] = '\ 0';__asm

(

pushad;

pushfd;

mov edx, temp;

popfd;

popad;

)delete temp;

return 0;

)int main (int argc, char ** argv)

(test ();

return 0;)
 
@ Ahmed Osama

Może to wina programu, spróbuj zaktualizować oprogramowanie z dodatkiem Service Pack (SP6).

 

Welcome to EDABoard.com

Sponsor

Back
Top