What does it mean: buffer[0 .. kSize] = input[index .. (index	+Size)]; 
    BCS 
    ao at pathlink.com
       
    Fri Jul 25 08:25:04 PDT 2008
    
    
  
Reply to Koroskin,
> On Fri, 25 Jul 2008 12:50:36 +0400, t0mek <t0mek at com.com.com.com.com>
> wrote:
> 
>> Hello,
>> I found some code in D and I am wondering what does it mean:
>> buffer[0 .. Size] = input[index .. (index + Size)];
>> I understand it can be written like this:
>> for (i=0; i<Size; i++) buffer[i]=input[i+index];
>> But...
>> 1) does it allocate space for buffer?
>> 2) if buffer has already some data- will be zeroed?
>> 3) if there is no enough date (less then Size) in input will there be
>> an
>> exception or will be copied what already is in the array?
>> Regards,
>> t0mek
> It is *exactly* the same (however, a memcpy could be used under the
> hood),
Not /exaltly/ the same, because IIRC the exception will be thrown before 
any copy takes place and the for loop will copy to the end of one of the 
buffers and then throw. 
Most of the time the difference isn't important, but...
> i.e.
> - there is no allocation
> - data will be overwritten
> - an OutOfBounds exception will be thrown if array is not large enough
    
    
More information about the Digitalmars-d-learn
mailing list