Thread overview
Empty array vs. null array (WAS: Re: Arrays)
Apr 26, 2008
Bruno Medeiros
Apr 26, 2008
Janice Caron
Apr 26, 2008
Bruno Medeiros
April 26, 2008
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
April 26, 2008
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.
April 26, 2008
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