solidity return array of struct

To return an array of structs in Solidity, you can define a struct and then create an array of that struct type. Here's an example:

pragma solidity ^0.8.0;

contract MyContract {
    struct MyStruct {
        uint256 id;
        string name;

    MyStruct[] public myArray;

    function addStruct(uint256 _id, string memory _name) public {
        MyStruct memory newStruct = MyStruct(_id, _name);

    function getStruct(uint256 index) public view returns (MyStruct memory) {
        require(index < myArray.length, "Index out of range");
        return myArray[index];

In this example, we define a struct called MyStruct with two fields: id of type uint256 and name of type string. We then create an array of MyStruct called myArray. The addStruct function allows you to add a new struct to the array, and the getStruct function allows you to retrieve a struct from the array by its index.

Please note that this is just a basic example, and you can customize the struct and array to fit your specific needs.