www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Empty array vs. null array (WAS: Re: Arrays)

reply Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
Walter Bright wrote:
 2) An empty array is equal to a null pointer. Yikes!
Not exactly, although a null array is also an empty array, the
reverse is not true.

Really? So what exactly is the difference?

-- 
Bruno Medeiros - Software Developer, MSc. in CS/E graduate
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
Apr 26 2008
parent reply "Janice Caron" <caron800 googlemail.com> writes:
On 26/04/2008, Bruno Medeiros <brunodomedeiros+spam com.gmail> wrote:
 Walter Bright wrote:
  >>
  >> 2) An empty array is equal to a null pointer. Yikes!
  >
  > Not exactly, although a null array is also an empty array, the reverse is
 not true.

  Really? So what exactly is the difference?
If (array.length == 0) then it's an empty array. If (array.ptr == 0 && array.length == 0) then it's a null array.
Apr 26 2008
parent Bruno Medeiros <brunodomedeiros+spam com.gmail> writes:
Janice Caron wrote:
 On 26/04/2008, Bruno Medeiros <brunodomedeiros+spam com.gmail> wrote:
 Walter Bright wrote:
  >>
  >> 2) An empty array is equal to a null pointer. Yikes!
  >
  > Not exactly, although a null array is also an empty array, the reverse is
 not true.

  Really? So what exactly is the difference?
If (array.length == 0) then it's an empty array. If (array.ptr == 0 && array.length == 0) then it's a null array.
True. But that only makes an empty array not the *same* as a null array. They are still equal (in terms of equality, think of the equality operator), which I believe is what the original poster was thinking about, and I agree. Since Walter refuted that by saying "Not exactly", I was trying to learn why, but probably Walter just misunderstood the OP. -- Bruno Medeiros - Software Developer, MSc. in CS/E graduate http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
Apr 26 2008