Deleting Entries from an Array

Daniel Biehl dbiehl at gmx.net
Wed Jun 27 05:27:15 PDT 2007


Lars Ivar Igesund Wrote:

> Daniel Biehl wrote:
> 
> > Hello,
> > 
> > I play a little bit with D to learn something more about it. One
> > interesting feature is splicing of arrays. I wrote a little function to
> > delete some entries from an array of chars. I thought it was easy, but I
> > only get a memory access error (Speicherzugriffsfehler in german) under
> > Linux with DMD 1.015 and gdc 0.24 and on Windows XP only with gdc 0.23.
> > Where is the Bug? Me or Phobos/DMD/GDC?
> > 
> > module tt;
> > 
> > import std.stdio;
> > 
> > char[] cut(inout char[] s, size_t index, size_t count) {
> >     s[index..length - count] = s[index+count..length].dup;
> >     s.length = s.length - count;
> >     return s;
> > }
> > 
> > void main()
> > {
> >     char[] s = "Hello World";
> > 
> >     writefln(s.length);
> >     writefln(s.cut(1,1));
> >     writefln(s.length);
> > 
> > }
> > 
> > Greets Daniel
> 
> At least literals are put in read only memory on Linux, so you will have to
> dup s before cutting it.
> 
> -- 
> Lars Ivar Igesund
> blog at http://larsivi.net
> DSource, #d.tango & #D: larsivi
> Dancing the Tango




More information about the Digitalmars-d mailing list