Syntax error : System verilog keyword 'void' is not expected to b used in this context

You’re still mixing up the syntax - in SystemVerilog you don’t need the { } braces around the function call body, that’s what the compiler is complaining about.

The ’ in front of the RHS side of the array assignment is important, it says that what comes inside the braces is the content of the array.

If you want to pass an array to another function call you have to code the target function call like this:

function void print_array(string ip_info[3]); foreach(ip_info[i]) begin $display(ip_info[i]); end endfunction