🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.os.os9
Article #2

Re: Problem mit struct/zeiger...

#2
From: Clemens Misch
Date: Tue, 21 Jul 1992 09:38
38 lines
2563 bytes
In article <1992Jul20.141723.16054@news.DKRZ-Hamburg.DE>, peters@dkrz-hamburg.dbp.de (Heino Peters) writes:
> In article <BvuoqG@ppcger.ppc.sub.org> Sepp@ppcger.ppc.sub.org (Josef Wolf) writes:
> >n = 0;
> >if (tmp -> bar = (char **) malloc (arraysize * sizeof (char *))) {
> >    while (laber) {
> >        [ ... ]
> >        if (!((tmp -> bar)[n++] = strdup (blubber)))  /* hier kracht es */
> >	    break;
> >    }
> >}
> > [..]
> >Er berechnet saemtliche offsets _bevor_ er strdup() aufruft. Soweit, so
> >gut. Das Problem ist nun dass der Inhalt von d1 nach der Rueckkehr von
> >strdup() zerstoert ist. Ansonsten ist der Code durchaus akzeptabel.
> 
> Tja, nach den Aufrufkonventionen von Microware darf strdup() d1 nicht
> zerstoeren. Ist das etwa eine selbst geschriebene Assemblerversion von
> strdup() ? Oder eine mit gcc kompilierte ? Oder hat strdup() einen
> zweiten (Dummy-) Parameter deklariert ?
> 
> >Die Frage ist nun: wie kann ich den compiler ueberreden, d1 _nach_ dem
> >Aufruf von strdup() zu berechnen. Alternativ nehme ich auch Vorschlaege
> >entgegen, wie dieses Programmstueck korrekt zu schreiben ist ;-)
> 
> Ein gemeiner Hack waere strdup(blubber,0) aufzurufen. Das zweite Argument
> wird in d1 uebergeben und dann (hoffentlich) von strdup() ignoriert.

Das ist ein bekannter Fehler von MW CC 3.2. In einer der Release Notes
fuer OSK V2.3 ist dieser Fehler beschrieben mit genau dem Workaround
die Du angegeben hast.

Gruss Clemens
-- 
===============================================================================
Clemens Misch                                        Rechnerbetriebsgruppe FB20
                                                     Merckstrasse 25 
EMail: misch@rbhp90.rbg.informatik.th-darmstadt.de   W6100 Darmstadt (Germany)
Technical Details
Message-ID: <1992Jul21.093829.5477@infoserver.th-darmstadt.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!math.fu-berlin.de!news.th-darmstadt.de!misch
References: <BvuoqG@ppcger.ppc.sub.org> <1992Jul20.141723.16054@news.DKRZ-Hamburg.DE>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.os.os9
Path: arc1-ca.pugleaf.net!sparky!uunet!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!math.fu-berlin.de!news.th-darmstadt.de!misch
From: misch@rbhp90.rbg.informatik.th-darmstadt.de (Clemens Misch)
Subject: Re: Problem mit struct/zeiger...
Originator: misch@rbhp90.rbg.informatik.th-darmstadt.de
Sender: news@infoserver.th-darmstadt.de (The Usenet-News System)
Message-ID: <1992Jul21.093829.5477@infoserver.th-darmstadt.de>
Date: Tue, 21 Jul 1992 09:38:29 GMT
Reply-To: misch@rbhp90.rbg.informatik.th-darmstadt.de
References: <BvuoqG@ppcger.ppc.sub.org> <1992Jul20.141723.16054@news.DKRZ-Hamburg.DE>
Nntp-Posting-Host: rbhp90.rbg.informatik.th-darmstadt.de
Organization: Rechnerbetriebsgruppe FB20; TH Darmstadt (Germany)
Lines: 38