跨文件调用结构体的问题

文件A:

typedef struct DingWei_data {
    string describe_DW;
    string keyw;
    int x1;
    int y1;
    int jt_long;
    int jt_width;
};

文件B:

DingWei_data dingwei_all[200];

//主函数

int main ()
{
    string a1 = "\\dingwei.txt";
    char  c[_MAX_PATH];
    string b;
    char *ab;
    _getcwd(c, sizeof(c));
    b = c;
    a1 = b + a1;
    ab = &a1[0];
    string add[100];

    Read_write_data RWD(ab, add);
    cout << dingwei_all[1] << endl;
    return 0;
    }

为什么这里cout<<dingwei_all[1]这里直接报错了
这里报表达式必须是指向完整对象类型的指针

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^