delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/09/05/12:31:24

From: "Mars" <mars AT homemail DOT com>
Sender: "Mars" <marsj AT 195 DOT 158 DOT 64 DOT 19>
Reply-To: "Mars" <mars AT homemail DOT com>
Subject: Re: Crash in class when adding new variables
Newsgroups: comp.os.msdos.djgpp
References: <35eec1db DOT 0 AT 195 DOT 158 DOT 64 DOT 19> <35f0e017 DOT 37639438 AT news DOT Austria DOT EU DOT net> <35f01ace DOT 0 AT 195 DOT 158 DOT 64 DOT 19> <35fd5f72 DOT 48706033 AT news DOT Austria DOT EU DOT net>
MIME-Version: 1.0
NNTP-Posting-Host: 195.158.64.195
Message-ID: <35f165f6.0@195.158.64.19>
Date: 5 Sep 1998 18:25:26 +0100
Lines: 201
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

This is a multi-part message in MIME format.

---=_news35f165d6
Content-Type: text/plain
Content-Transfer-Encoding: 7bit


sparhawk AT eunet DOT at (Gerhard Gruber) wrote:
>Destination: "Mars" <mars AT homemail DOT com>
>=46rom: Gruber Gerhard
>Group: comp.os.msdos.djgpp
>Date: 4 Sep 1998 18:52:30 +0100:
>
>>It was not me.  This is another problem.
>
>Oh. Same subject line different problem. :)
>
>>This is the signiture of the class:
>
>Well, the calls is with 99.9% surity (is this the word?) not the problem.
>Rather your problem lies somewhere in your code. I'm pretty sure that you
>overwrite your stack somewhere and thats why changes in the class might
=
>crash
>your program. Because the stack layout is different with the new class =
>and it
>happens that the new values crash whereas the previous values went =
>unnoticed
>(but are still there). So check your code for parts where you use =
>automatic
>variables (specifically arrays) where you might go beyond array =
>boundaries.
>
>Something like that might cause your problem:
>
>foo()
>{
>   char s[5];
>
>   strcpy(s, "Very long string doesnt fit in this short array");
>}
>
>Another problem might be that you are shooting with wild pointers. :) Are=
> you
>sure you initialized all pointers prior to using them? Assigning a =
>default
>value of NULL often helps in detecting such errors. I'd recommend to do
=
>this
>on all pointers.
>
>--
>Bye,
>   Gerhard
>
>email: sparhawk AT eunet DOT at
>       g DOT gruber AT sis DOT co DOT at
>
>Spelling corrections are appreciated.

Thanks for your reply.
I tried as you said, to make the pointer point to NULL.  But it still crashed.
I'm attaching the source code so that you can try it.  As it is, it is runnable.
 But when you add another variable to either class GridMap or class GridMap2,
the program crashes.

To exit program, press 'x'.

Thanks again
Mars
---=_news35f165d6
Content-Type: text/plain; name="M:\djgpp\work\map2.cpp"
Content-Transfer-Encoding: base64

I2luY2x1ZGUgPGFsbGVncm8uaD4NCi8vI2luY2x1ZGUgPG1hcC5oPg0KI2lu
Y2x1ZGUgPGtleXMuaD4NCg0KI2luY2x1ZGUgPGlvc3RyZWFtLmg+DQojaW5j
bHVkZSA8YWxsZWdyby5oPg0KDQpjbGFzcyBNYXBPYmplY3QNCnsNCiBCSVRN
QVAgKnBpY3R1cmU7DQogaW50IHNpemV4Ow0KIGludCBzaXpleTsNCg0KIHB1
YmxpYzoNCiBNYXBPYmplY3QoQklUTUFQICpwaWN0LCBpbnQgc2l6ZV94LCBp
bnQgc2l6ZV95KSB7DQogCXBpY3R1cmUgPSBwaWN0Ow0KICAgc2l6ZXggPSBz
aXplX3g7DQogICBzaXpleSA9IHNpemVfeTsNCiB9DQogdm9pZCBkcmF3T2Jq
ZWN0KEJJVE1BUCogZGVzdCwgaW50IHgsIGludCB5KSB7DQogCWJsaXQocGlj
dHVyZSwgZGVzdCwgMCwwLHgseSwgc2l6ZXgsc2l6ZXkpOw0KIH0NCn07DQoN
CmNsYXNzIEdyaWRNYXANCnsNCiBNYXBPYmplY3QgKiptYXA7DQogaW50IHNp
emV4LCBzaXpleTsJCS8vIGFjdHVhbCBzaXplDQogaW50IHZpc3VhbHgsIHZp
c3VhbHk7CS8vIHZpc3VhbCBzaXplIHNob3duIG9uIHNjcmVlbg0KIGludCBz
Y3JlZW54LCBzY3JlZW55OwkvLyBwb3NpdGlvbiBvZiBsZWZ0LWhhbmQgY29y
bmVyIHdoZXJlIHRvIGJlZ2luDQogCQkJCQkJCQkvLyBkaXNwbGF5aW5nIGdy
aWQNCiBCSVRNQVAgKmRpc3BsYXk7CQkJLy8gb3V0cHV0IGJpdG1hcCBnZW5l
cmFsbHkgc2NyZWVuDQogaW50IGJveHNpemU7CQkJCS8vIHNpemUgb2YgZWFj
aCBtYXAgc3F1YXJlDQogaW50IGNvdW50OwkJCQkJLy8gdXNlZCBmb3IgbW91
c2Ugc2Nyb2xsaW5nDQoNCiBwcm90ZWN0ZWQ6DQogaW50IGN1cngsIGN1cnk7
DQoNCiBwdWJsaWM6DQogR3JpZE1hcChpbnQgc2l6ZV94LCBpbnQgc2l6ZV95
LCBpbnQgdmlzdWFsX3gsIGludCB2aXN1YWxfeSwNCiAgICAgICAgIGludCBz
Y3JlZW5feD0wLCBpbnQgc2NyZWVuX3k9MCwgQklUTUFQICpkaXNwPXNjcmVl
biwNCiAgICAgICAgIGludCBiZWdpbl94PTAsIGludCBiZWdpbl95PTAsIGlu
dCBib3hfc2l6ZT0yMCkNCiB7DQogCWN1cnggPSBiZWdpbl94Ow0KICAgY3Vy
eSA9IGJlZ2luX3k7DQogICBzaXpleCA9IHNpemVfeDsNCiAgIHNpemV5ID0g
c2l6ZV95Ow0KICAgdmlzdWFseCA9IHZpc3VhbF94Ow0KICAgdmlzdWFseSA9
IHZpc3VhbF95Ow0KICAgc2NyZWVueCA9IHNjcmVlbl94Ow0KICAgc2NyZWVu
eSA9IHNjcmVlbl95Ow0KICAgZGlzcGxheSA9IHNjcmVlbjsNCiAgIGJveHNp
emUgPSBib3hfc2l6ZTsNCiAgIG1hcCA9IG5ldyAoTWFwT2JqZWN0Kilbc2l6
ZXggKiBzaXpleV07DQogfQ0KDQogfkdyaWRNYXAoKSB7DQogCWZvciAoaW50
IGs9MDsgazxzaXpleCpzaXpleTsgKytrKSB7DQogICAJaWYgKG1hcFtrXSAh
PSBOVUxMKSBmcmVlKG1hcFtrXSk7DQogICB9DQogCWZyZWUobWFwKTsNCiB9
DQoNCiB2b2lkIHNldERpc3BsYXkoQklUTUFQICpuZXdfZGlzcGxheSkgew0K
IAlkaXNwbGF5ID0gbmV3X2Rpc3BsYXk7DQogfQ0KIHZvaWQgbW92ZU1hcChp
bnQgbmV3X3gsIGludCBuZXdfeSkgew0KIAlzY3JlZW54ID0gbmV3X3g7DQog
ICBzY3JlZW55ID0gbmV3X3k7DQogfQ0KIHZvaWQgc2V0VmlzdWFsKGludCBu
ZXdfeCwgaW50IG5ld195KSB7DQogCXZpc3VhbHggPSBuZXdfeDsNCiAgIHZp
c3VhbHkgPSBuZXdfeTsNCiB9DQogTWFwT2JqZWN0JiBnZXQoaW50IHgsIGlu
dCB5KSB7DQogCXJldHVybiAqKG1hcFt4Kyh5KnNpemV4KV0pOw0KIH0NCiBN
YXBPYmplY3QqIGdldHB0KGludCB4LCBpbnQgeSkgew0KIAlyZXR1cm4gKG1h
cFt4Kyh5KnNpemV4KV0pOw0KIH0NCiB2b2lkIGNsZWFyTWFwKE1hcE9iamVj
dCAqbW8pIHsNCiAJaWYgKG1vID09IE5VTEwpIHsNCiAJCWZvciAoaW50IGs9
MDsgazxzaXpleCpzaXpleTsgKytrKSB7DQogICAJCWlmIChtYXBba10gIT0g
TlVMTCkgZnJlZShtYXBba10pOw0KICAgCX0NCiAgIH0NCiAJZWxzZSB7DQog
CQlmb3IgKGludCBrPTA7IGs8c2l6ZXgqc2l6ZXk7ICsraykgew0KICAgCQlp
ZiAobWFwW2tdICE9IE5VTEwpIGZyZWUobWFwW2tdKTsNCiAgICAgICAgIG1h
cFtrXSA9IG1vOw0KICAgCX0NCiAgIH0NCiB9DQogdm9pZCBzY3JvbGxVcChp
bnQgbikgew0KIAlpZiAoKGN1cnktbikgPCAwKSByZXR1cm47DQogICBlbHNl
IChjdXJ5IC09IG4pOw0KICAgZHJhd01hcCgpOw0KIH0NCiB2b2lkIHNjcm9s
bERvd24oaW50IG4pIHsNCiAJaWYgKChjdXJ5K24pID4gKHNpemV5IC0gdmlz
dWFseSAtIDEpKSByZXR1cm47DQogICBlbHNlIChjdXJ5ICs9IG4pOw0KICAg
ZHJhd01hcCgpOw0KIH0NCiB2b2lkIHNjcm9sbExlZnQoaW50IG4pIHsNCiAJ
aWYgKChjdXJ4LW4pIDwgMCkgcmV0dXJuOw0KICAgZWxzZSBjdXJ4IC09IG47
DQogICBkcmF3TWFwKCk7DQogfQ0KIHZvaWQgc2Nyb2xsUmlnaHQoaW50IG4p
IHsNCiAJaWYgKChjdXJ4K24pID4gKHNpemV4IC0gdmlzdWFseCAtIDEpKSBy
ZXR1cm47DQogICBlbHNlIGN1cnggKz0gbjsNCiAgIGRyYXdNYXAoKTsNCiB9
DQogdm9pZCBkcmF3R3JpZCgpIHsNCiAJZm9yIChpbnQgaz0wOyBrPD12aXN1
YWx4OyArK2spIHsNCiAgIAlsaW5lKGRpc3BsYXksIHNjcmVlbnggKyAoaypi
b3hzaXplKSxzY3JlZW55LHNjcmVlbnggKyhrKmJveHNpemUpLHNjcmVlbnkr
KHZpc3VhbHkqYm94c2l6ZSksIDE1KTsNCiAgIH0NCglmb3IgKGludCBrPTA7
IGs8PXZpc3VhbHk7ICsraykgew0KICAgICAgbGluZShkaXNwbGF5LHNjcmVl
bngsc2NyZWVueSsoaypib3hzaXplKSxzY3JlZW54Kyh2aXN1YWx4KmJveHNp
emUpLHNjcmVlbnkrKGsqYm94c2l6ZSksIDE1KTsNCiAgIH0NCiB9DQogdm9p
ZCBkcmF3TWFwKCkgew0KIAlpbnQgayxyOw0KICAgTWFwT2JqZWN0ICpwOw0K
ICAgdnN5bmMoKTsNCiAgIHNob3dfbW91c2UoTlVMTCk7DQogICBkcmF3R3Jp
ZCgpOw0KICAgY2hhciAqcyA9IG5ldyBjaGFyKDIwKTsNCiAgIHNwcmludGYo
cywgIlg6ICVkIixjdXJ4KTsNCiAgIHRleHRvdXQoc2NyZWVuLGZvbnQscyw1
MDAsMTAsMTEpOw0KICAgc3ByaW50ZihzLCAiWTogJWQiLGN1cnkpOw0KICAg
dGV4dG91dChzY3JlZW4sZm9udCxzLDUwMCwzMCwxMSk7DQogICBkZWxldGUo
cyk7DQogCWZvciAoaz1jdXJ5OyBrPChjdXJ5K3Zpc3VhbHkpOyArK2spDQog
ICAgICBmb3IgKHI9Y3VyeDsgcjwoY3VyeCt2aXN1YWx4KTsgKytyKSB7DQog
ICAgICAJaWYgKChwID0gKE1hcE9iamVjdCopZ2V0cHQoayxyKSkgPT0gTlVM
TCkgY29udGludWU7DQogICAgICAgICBlbHNlIHsNCiAgICAgICAgIAlwLT5k
cmF3T2JqZWN0KGRpc3BsYXksIHNjcmVlbngrKChrJXZpc3VhbHgpKmJveHNp
emUpKzEsIHNjcmVlbnkrKChyJXZpc3VhbHkpKmJveHNpemUpKzEpOw0KICAg
ICAgICAgfQ0KICAgCX0NCiAgIHNob3dfbW91c2Uoc2NyZWVuKTsNCiB9DQog
dm9pZCBzY3JvbGxNb3VzZSgpIHsNCiAJaW50IHcgPSAxNTsNCiAJaWYgKCAg
KG1vdXNlX3ggPiBzY3JlZW54KSAmJiAobW91c2VfeSA+IHNjcmVlbnkrdykN
CiAgICAgICAmJihtb3VzZV94IDwgc2NyZWVueCt3KSAmJiAobW91c2VfeSA8
ICh2aXN1YWx5KmJveHNpemUpLXcpKQ0KICAgew0KLy8gICAgIGlmIChjb3Vu
dCAhPSAwKSAtLWNvdW50Ow0KLy8gICAgIGVsc2Ugew0KICAgICAJc2Nyb2xs
TGVmdCgxKTsNCiAgICAgCXBhdXNlKCk7DQovLyAgICAgIGNvdW50PTEwMDsN
Ci8vICAgICB9DQovLyAgICAgY2VyciA8PCAiU2Nyb2xsIGxlZnRcbiI7DQog
ICB9DQogICBpZiAoICAobW91c2VfeCA+ICh2aXN1YWx4KmJveHNpemUpLXcp
ICYmIChtb3VzZV95ID4gc2NyZWVueSt3KQ0KICAgICAgICYmKG1vdXNlX3gg
PCAodmlzdWFseCpib3hzaXplKSkgJiYgKG1vdXNlX3kgPCAodmlzdWFseSpi
b3hzaXplKS13KSkNCiAgIHsNCi8vICAgICBpZiAoY291bnQgIT0gMCkgLS1j
b3VudDsNCi8vICAgICBlbHNlIHsNCiAgICAgCXNjcm9sbFJpZ2h0KDEpOw0K
ICAgICAJcGF1c2UoKTsNCi8vICAgICAgY291bnQ9MTAwOw0KLy8gICAgIH0N
Ci8vICAgICBjZXJyIDw8ICJTY3JvbGwgUmlnaHRcbiI7DQogICB9DQogICBp
ZiAoICAobW91c2VfeCA+IHNjcmVlbngrdykgJiYgKG1vdXNlX3kgPiBzY3Jl
ZW55KQ0KICAgICAgICYmKG1vdXNlX3ggPCAodmlzdWFseCpib3hzaXplKS13
KSAmJiAobW91c2VfeSA8IHNjcmVlbnkrdykpDQogICB7DQogICAgIHNjcm9s
bFVwKDEpOw0KICAgICBwYXVzZSgpOw0KLy8gICAgIGNlcnIgPDwgIlNjcm9s
bCBVcFxuIjsNCiAgIH0NCiAgIGlmICggIChtb3VzZV94ID4gc2NyZWVueCt3
KSAmJiAobW91c2VfeSA+ICh2aXN1YWx5KmJveHNpemUpLXcpDQogICAgICAg
JiYobW91c2VfeCA8ICh2aXN1YWx4KmJveHNpemUpLXcpICYmIChtb3VzZV95
IDwgdmlzdWFseSpib3hzaXplKSkNCiAgIHsNCiAgICAgc2Nyb2xsRG93bigx
KTsNCiAgICAgcGF1c2UoKTsNCi8vICAgICBjZXJyIDw8ICJTY3JvbGwgRG93
blxuIjsNCiAgIH0NCiB9DQp9Ow0KDQpjbGFzcyBHcmFzczogcHVibGljIE1h
cE9iamVjdA0Kew0KIHB1YmxpYzoNCiBHcmFzcyhCSVRNQVAgKnBpY3QsIGlu
dCBzaXplX3gsIGludCBzaXplX3kpIDogTWFwT2JqZWN0KHBpY3QsIHNpemVf
eCwgc2l6ZV95KQ0KIHsNCiB9DQp9Ow0KDQpjbGFzcyBHcmlkTWFwMiA6IHB1
YmxpYyBHcmlkTWFwDQp7DQogcHVibGljOg0KIAlHcmlkTWFwMihpbnQgczEs
IGludCBzMiwgaW50IHMzLCBpbnQgczQsIGludCBzNSwgaW50IHM2KSA6IEdy
aWRNYXAoczEsczIsczMsczQsczUsczYpe30NCn07DQoNCnZvaWQgbWFpbigp
DQp7DQogYWxsZWdyb19pbml0KCk7DQogaW5zdGFsbF90aW1lcigpOw0KIGlu
c3RhbGxfbW91c2UoKTsNCiBzZXRfZ2Z4X21vZGUoR0ZYX0FVVE9ERVRFQ1Qs
IDY0MCw0ODAsMCwwKTsNCiBHcmlkTWFwMiBnbSgxMDAsMTAwLDIwLDIwLDAs
MCk7DQogUkdCICpwOw0KIEdyYXNzICpncmFzcyA9IG5ldyBHcmFzcyhsb2Fk
X2JtcCgiZ3Jhc3MuYm1wIiwgcCksMTksMTkpOw0KIEdyYXNzICpyaXZlciA9
IG5ldyBHcmFzcyhsb2FkX2JtcCgicml2ZXIuYm1wIiwgcCksMTksMTkpOw0K
IHNldF9wYWxldHRlKHApOw0KIGdtLmNsZWFyTWFwKGdyYXNzKTsNCiBnbS5k
cmF3TWFwKCk7DQogaW50IGVuZGZsYWcgPSAwOw0KIGludCBjOw0KIHNob3df
bW91c2Uoc2NyZWVuKTsNCiB3aGlsZSAoIWVuZGZsYWcpIHsNCiAgIHdoaWxl
ICgha2JoaXQoKSAmJiAoIWVuZGZsYWcpKSB7DQogICAJZ20uc2Nyb2xsTW91
c2UoKTsNCiAgIH0NCiAgIGMgPSBnZXRrZXkoKTsNCiAgIHN3aXRjaCAoYykg
ew0KICAgCWNhc2UgS19VcDogZ20uc2Nyb2xsVXAoMSk7DQogICAgICAgICAg
IGJyZWFrOw0KICAgICAgY2FzZSBLX0Rvd246IGdtLnNjcm9sbERvd24oMSk7
DQogICAgICAgICAgIGJyZWFrOw0KICAgICAgY2FzZSBLX0xlZnQ6IGdtLnNj
cm9sbExlZnQoMSk7DQogICAgICAgICAgIGJyZWFrOw0KICAgICAgY2FzZSBL
X1JpZ2h0OiBnbS5zY3JvbGxSaWdodCgxKTsNCiAgICAgICAgICAgYnJlYWs7
DQogICAgICBjYXNlICdYJzoNCiAgICAgIGNhc2UgJ3gnOiBlbmRmbGFnID0g
MTsNCiAgICAgICAgICAgYnJlYWs7DQogICB9DQogfQ0KIGFsbGVncm9fZXhp
dCgpOw0KfQ0KDQo=

---=_news35f165d6--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019