Why exported task or function can't have open arrays as a formal argument whereas imported function or task have?

This question is based on DPI.
Please provide me the reason behind above scenario.

Thanks & Regards
Shivakant

In reply to skushwah:

The problem is that C has no concept of open array sizes; you just have a pointer to the first element and it’s up to you to know by some other mechanism how big the array is. It’s easy to go from SystemVerilog to C, but the DPI does not provide an API from C to tell SystemVerilog how much memory the array takes up.

In reply to dave_59:

Thanks Dave