Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: sizeof object got by dereferencing uniniitalized pointer Date: Thu, 28 Nov 2019 17:47:24 -0800 Organization: A noiseless patient Spider Lines: 31 Message-ID: <861rtr8ndf.fsf@linuxsc.com> References: <21e377ab-2a49-4f7e-bc18-72f1cee63204@googlegroups.com> <9d5ee6d4-607b-405f-83d9-afbe2b073cac@googlegroups.com> <76a74489-4a1f-4561-a01b-b2962a10bae4@googlegroups.com> <2119c5dc-fc01-4a74-93f4-8027c7cc210e@googlegroups.com> <43093894-ed52-47de-85f4-eadd92a1499e@googlegroups.com> <877e3j52do.fsf@bsb.me.uk> <86eexr8qlh.fsf@linuxsc.com> <87v9r33211.fsf@bsb.me.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: reader02.eternal-september.org; posting-host="81b92e3fa8397acac1ab5cf195ff75cd"; logging-data="3555"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18g7L7HzTiMzDoUclGhRQQA9wgWl4tZ/Hc=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:UMx+mep6SN+ULhAK7HyfuBJnNHA= sha1:mZKTXRwBcjCYOHEdmX5cHrBMB9w= Xref: csiph.com comp.lang.c:148211 Ben Bacarisse writes: > Tim Rentsch writes: > >> Ben Bacarisse writes: >> >>> Thiago Adams writes: >>> >>> >>>> Only when applied to variably types, sizeof is in runtime. >>>> >>>> int n = 10; >>>> >>>> int(*buf)[n] = malloc(sizeof(int) * n); >>> >>> Why would you not write >>> >>> int (*buf)[n] = malloc(sizof *buf); >>> >>> ? >> >> Perhaps because, technically speaking, the right-hand side here >> has undefined behavior? > > Yes, it has. That has always puzzled me. Do you think that this usage > was specifically being ruled out, or is it a casualty of having made an > overly simple decision[1]? Short answer: overly simple decision casualty. But that is just a guess, if I have time I will try to give a more thoughtful answer later.