Path: csiph.com!weretis.net!feeder9.news.weretis.net!panix!.POSTED.spitfire.i.gajendra.net!not-for-mail From: cross@spitfire.i.gajendra.net (Dan Cross) Newsgroups: comp.lang.c Subject: Re: AVL tree insertion - programming exercise Date: Wed, 21 Oct 2026 11:22:16 -0000 (UTC) Organization: PANIX Public Access Internet and UNIX, NYC Message-ID: <11ba798$9qs$1@reader2.panix.com> References: <86ece2kppv.fsf@linuxsc.com> <86v775h9o2.fsf@linuxsc.com> <11am74c$54g$1@reader2.panix.com> <86h5ifo0g7.fsf@linuxsc.com> Injection-Date: Wed, 21 Oct 2026 11:22:16 -0000 (UTC) Injection-Info: reader2.panix.com; posting-host="spitfire.i.gajendra.net:166.84.136.80"; logging-data="10076"; mail-complaints-to="abuse@panix.com" X-Newsreader: trn 4.0-test77 (Sep 1, 2010) Originator: cross@spitfire.i.gajendra.net (Dan Cross) Xref: csiph.com comp.lang.c:403408 In article <86h5ifo0g7.fsf@linuxsc.com>, Tim Rentsch wrote: >cross@spitfire.i.gajendra.net (Dan Cross) writes: > >> In article <86v775h9o2.fsf@linuxsc.com>, >> Tim Rentsch wrote: >> >>> cross@spitfire.i.gajendra.net (Dan Cross) writes: >>> >>>> In article <11al4mu$fqtl$1@kst.eternal-september.org>, >>>> Keith Thompson wrote: >>>> >>>>> David Brown writes: >>>>> >>>>>> On 13/10/2026 10:38, chine.bleu wrote: >>>>>> >>>>>>> Tim Rentsch wrote: >>>>>>> >>>>>>>> sons[2] array. These links are basically pointers, but held >>>>>>>> as uintptr_t so they can take one of the bits to mean "tall", >>>>>>>> which means taller than the other subtree of the node. The >>>>>>>> tree structure should maintain an invariant that at most one >>>>>>> >>>>>>> Memory is cheap. >>>>>> >>>>>> Not any more! >>>>>> >>>>>>> Do not encode tags into low bits of an address unless you really >>>>>>> know what your doing. >>>>>> >>>>>> Agreed, as a principle. >>>>>> >>>>>>> As a precaution check the return address of malloc >>>>>>> p = malloc(m); >>>>>>> if ((uintptr_t)p)&1!=0) abort(); >>>>>> >>>>>> malloc always returns an address with suitable alignment for any >>>>>> fundamental alignment on the target. >>>> >>>> I don't think this is true anymore, as of C23. Here's the >>>> relevant text from n3220, sec 7.24.3, describing the return >>>> value from `malloc` et al: >>>> >>>> |The pointer returned if the allocation succeeds is suitably >>>> |aligned so that it may be assigned to a pointer to any type of >>>> |object with a fundamental alignment requirement and size less >>>> |than or equal to the size requested. >>>> >>>> This sentence is somewhat ambiguous because it's unclear whether >>>> the "less than or equal to the size requested" criteria applies >>>> to both the pointer type's size _and_ fundamental alignment >>>> requirement, or _just_ the size, [...] >>> >>> It's poorly constructed but in English it has only one >>> grammatical parse. >> >> Nope. Not even close. > >I am confident my assessment is on fairly solid ground in this >case. You don't have to be confident; you can simply show data. One can simply run the sentence through a grammar analyzer using a standard grammar model, like spaCy (Stanford), using a tool like the NLP toolkit, and see what comes out. Using a fairly strict model, that single sentence yields well over a thousand valid parses. >That said, I don't think there is any value in taking part in a >shouting match, which seems to be all you want to do here. I am not shouting. You simply made a factual error. *shrug* - Dan C.