How to pass in reference a fixed array in parameter
    bauss 
    jacobbauss at gmail.com
       
    Wed Jun  5 15:08:34 UTC 2024
    
    
  
On Wednesday, 5 June 2024 at 06:22:34 UTC, Eric P626 wrote:
>
> I tried the following signatures with the ref keyword and it 
> did not change anything:
>
> ~~~
> void print_maze ( ref s_cell maze )
> void print_maze ( ref s_cell [][] maze )
> ~~~
>
> From what I found, arrays passed in parameters are always 
> passed by reference. So the ref keyword seems pointless.
>
There is one useful functionality about the ref keyword when 
passing arrays, it is that you can change the original array 
reference to another array reference.
Ex.
```
void foo(ref int[] x)
{
     x = [1,2,3];
}
void bar(int[] y)
{
     y = [1,2,3];
}
void main()
{
     auto x = [0,0,0];
     auto y = [1,1,1];
     foo(x);
     bar(y);
     writeln(x);
     writeln(y);
}
```
The output of the program is:
```
[1, 2, 3]
[1, 1, 1]
```
Of course in your case this doesn't matter, but just wanted to 
point out that adding ref to array parameters actually pose a 
function.
    
    
More information about the Digitalmars-d-learn
mailing list