1

Тема: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

Доброго вечора, в мене з'явилось ще одне питання що до RAD Studio XE3 та програмувані на ній.
Моя попередня тема вперлася в такуж помилку і я зовсім не розумію що з цією RAD Studio відбується!

String GetStructFile(AnsiString GetName,UnicodeString Param){
int Len = GetName.Length();
UnicodeString Name,Exp,Path;
wchar_t *chr;
int ExpCount = 0;

while (chr != "."){
GetName.WideChar(chr,Len-ExpCount);
 ExpCount++;
}

for (int i = Len; i != (Len-ExpCount); i--) {
  Exp = Exp + GetName[i];
}

return Exp;

} 

Я не впевнений у працездатності цієї функції, але я маю таку помилку при спробі присвоїти нуль. "int ExpCount = 0;" Зовсім не розумію що я роблю не так, об'явив змінну та хотів присвоїти 0, але ось це:
http://www.pictureshack.ru/images/10293_rtyu.png
First chance exception at $766708D2. Exception class $C0000005 with message 'access violation at 0x766708d2: write of address 0x005dcb2c'. Process Project3.exe (7136)

Як що не присваєвати їй нічого то все працює!

2

Re: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

Зовсім нічого не розумію! Переробив ось так, все працює!

String GetStructFile(AnsiString GetName,UnicodeString Param){
int Len = GetName.Length();
UnicodeString Name,Exp,Path;
wchar_t *chr;
int ExpCount[1];
ExpCount[1] = 0;

while (chr != "."){
GetName.WideChar(chr,Len-ExpCount[1]);
 ExpCount[1]++;
}

ShowMessage("IT'S OK");

for (int i = Len; i != (Len-ExpCount[1]); i--) {
  Exp = Exp + GetName[i];
}

return Exp;

}

3

Re: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

incrome
Так а в чому питання? Чи Ви хочете дзен пізнати?

Не відкривати це!

[code=cpp]
int ExpCount;
ExpCount = 0;
[/code]
Ну і далі по тексту

4 Востаннє редагувалося Torbins (14.06.2013 21:55:30)

Re: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

AV то така підступна помилка, яка може проявлятися зовсім не там, де насправді виникає. Наприклад: забули створити об'єкт, намагаєтеся з ним працювати, і начебто все нормально працює. А в іншому місці цілком правильний код починає вилітати.
Якщо хочете дізнатися більше, то раджу ознайомитися із цим: http://www.gunsmoker.ru/2010/03/blog-post.html Там про делфі, але більша частина рекомендацій підходить і для білдера.

Подякували: incrome1

5

Re: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

Chemist-i написав:

incrome
Так а в чому питання? Чи Ви хочете дзен пізнати?

Не відкривати це!

[code=cpp]
int ExpCount;
ExpCount = 0;
[/code]
Ну і далі по тексту

я так пробував! Теж саме!

6

Re: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

До-речі в Білдері іще має бути така фішка як перевірка стеку на цілісність. Здається десь в опціях компіляції вмикається. Раджу автору її ввімкнути разом із усіма іншими перевірками.

7

Re: RAD Studio та її причуди. Баг на присвоєнні пам'яті змінній.

Torbins написав:

До-речі в Білдері іще має бути така фішка як перевірка стеку на цілісність. Здається десь в опціях компіляції вмикається. Раджу автору її ввімкнути разом із усіма іншими перевірками.

Ви були абсолютно праві, все уперлося в те що я не виділив пам'ять і вся програма почала працювати несправно!