Pointers vs. References

Lionello Lunesu lio at lunesu.remove.com
Wed Jun 13 00:24:47 PDT 2007


Michael Neumann wrote:
> Synapse x = ...;
> while (x != null)
> {
> }
> 
> This segfaults, while:
> 
> Synapse x = ...
> while (!(x is null))
> {
> }
> 
> does not.

That's not a bug.
'==' and '!=' result in a call to opEquals, which is likely to segfault 
when one of the operands is null. You should use 'is' or in your case '!is'.

while (x !is null)
{
}

As for your question about references. A reference is basically the same 
as a pointer, so there should be no performance difference between the 
two. Without more details, it's hard to say what could be the reason 
behind the bad performance.

L.



More information about the Digitalmars-d mailing list