Can the compiler catch my stupid mistake?
Meta via Digitalmars-d
digitalmars-d at puremagic.com
Fri Aug 14 11:02:08 PDT 2015
On Friday, 14 August 2015 at 17:59:12 UTC, Jack Stouffer wrote:
> On Friday, 14 August 2015 at 17:44:11 UTC, Steven Schveighoffer
> wrote:
>> On 8/14/15 1:36 PM, Jack Stouffer wrote:
>>> Recently, I made the mistake of trying to reference an enum
>>> pointer in a
>>> struct before it was set (see example below). I was wondering
>>> if it's
>>> possible for DMD to catch this mistake at compile time, as
>>> this
>>> currently compiles fine and segfaults on execution.
>>
>> state *is* set to null, before your constructor is called. The
>> access is not "before it was set".
>>
>> Could the compiler *possibly* flag this as an error? It could,
>> but it doesn't, and likely won't in the future.
>>
>> -Steve
>
> I'm confused. If state is set to null on struct initialization,
> then why does accessing that memory segfault? Shouldn't the if
> condition just fail?
You're dereferencing a null pointer
More information about the Digitalmars-d
mailing list