Hello Anders,
John Reimer wrote:
You'd get a runtime error if you were using Linux. For some reason
string literals are not read-only, or Windows doesn't respect it, or
something like that. Modifying either array1 or array2 is
technically illegal. So, uh, don't do it.
Yes, that's one adva
Mike James wrote:
const char[26] array1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[26] array2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
It doesn't occur. Is this expected behaviour?
Yes. Static arrays have value semantics, unlike dynamic arrays, which
have reference semantics.
Stewart.
John Reimer wrote:
You'd get a runtime error if you were using Linux. For some reason
string literals are not read-only, or Windows doesn't respect it, or
something like that. Modifying either array1 or array2 is technically
illegal. So, uh, don't do it.
Yes, that's one advantage to Linux.
Hello Jarrett,
On Thu, Jan 1, 2009 at 5:55 PM, Mike James wrote:
I have a function that uses 2 array strings defined similar to
this...
const char[] array1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char[] array2 =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
If I make a change to a char in array1 it also changes t
Hello Jarrett,
If you want to modify the contents of string literals, like you're
doing here, put a .dup on them.
char[] array1 = "ABCD".dup;
Again, modifying the contents of string literals is illegal and the
results are undefined.
Oh, right. I missed that.
-JJR
On Thu, Jan 1, 2009 at 7:10 PM, Mike James wrote:
> Got it - so I should do this...
>
> const char[] array1= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
> char[] array2 = new char[array1.length];
Just "char[] array2 = array1.dup;"
.dup duplicates the array by creating a new array the same length and
copying
Got it - so I should do this...
const char[] array1= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] array2 = new char[array1.length];
and then copy the contents of array1 into array2.
Regards,
-=mike=-
On Thu, Jan 1, 2009 at 6:56 PM, Mike James wrote:
> Hi John,
>
> I am using D1.038, dsss and Tango.
>
> I've written a quick example but this one is even stranger...
>
>
>
> module main;
>
> import tango.io.Stdout;
>
> int main() {
>func1();
>func2(
Forgot to mention - Windows XP.
Regards,
-=mike=-
Hi John,
I am using D1.038, dsss and Tango.
I've written a quick example but this one is even stranger...
module main;
import tango.io.Stdout;
int main() {
func1();
func2();
return 0;
}
void func1() {
char[] array1 = "ABCD";
char[
On Thu, Jan 1, 2009 at 5:55 PM, Mike James wrote:
> I have a function that uses 2 array strings defined similar to this...
>
> const char[] array1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
> char[] array2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
>
> If I make a change to a char in array1 it also changes the same in
Hello Mike,
I have a function that uses 2 array strings defined similar to this...
const char[] array1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char[] array2 =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
If I make a change to a char in array1 it also changes the same in
array2. But if I define the arrays as follows
12 matches
Mail list logo