In C++ you use vector more often than array. You also distinguish between creating objects on the stack and on the heap (you already mentioned that concept; in C++ you are more actively involved in thinking about that).
You also may want to pay attention which C++ Standard you are using. Some concepts are not available in older standards. I tried to mention some in the example code below.
When dealing with arrays in C/C++ you should understand the notion of pointers, which I believe is the probable cause of your confusion. new creates an object on the heap and returns a pointer. When creating an array, then the returned pointer points to the first element.
Avoid new if you can. In newer C++ standards there are better concepts of smart pointers (e.g. std::unique_ptr<...>); I will not dive into that since you are just beginning. Be patient with learning C++, I am sure you will succeed, it takes time really.
#include <iostream>
#include <array>
#include <vector>
struct Node {
    std::string name = "node";
};
int main() {
    const size_t size = 10;
    // you can create it on the stack
    // will be deleted when leaving the block/scope
    Node nodes1[size];
    nodes1[0].name = "first node1";
    std::cout << nodes1[0].name << std::endl;
    // you can create it on the heap
    // you have to delete the objects yourself then
    Node *nodes2 = new Node[size];
    nodes2[0].name = "first node2";
    std::cout << nodes2[0].name << std::endl;
    // in C++ 11 and later you can use std::array<...>
    // you have to include the header <array> for that
    std::array<Node, size> nodes3;
    nodes3[0].name = "first node3";
    std::cout << nodes3[0].name << std::endl;
    // in C++ you use array "seldom"
    // instead you use the containers quite a lot as far as I have learned
    // e.g. you can include <vector>; can be used like an array
    std::vector<Node> nodes4(size);
    nodes4[0].name = "first node4";
    std::cout << nodes4[0].name << std::endl;
    // you can iterate over a vector like you know it from an array
    for (size_t i = 0; i < nodes4.size(); ++i) {
        if (i == 0) {
            std::cout << nodes4[i].name << std::endl;
        }
    }
    // in C++ you will soon learn about iterators too
    for (auto iter = nodes4.begin(); iter != nodes4.end(); iter++) {
        if (iter == nodes4.begin()) {
            std::cout << iter->name << std::endl;
        }
    }
    return 0;
}