首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“struct not refer a value”

如何修复“struct not refer a value”
EN

Stack Overflow用户
提问于 2019-11-04 01:39:53
回答 1查看 125关注 0票数 0

在我的项目中有两个结构,其中一个与二叉树相关,第二个与‘int main’中的学生数据相关。我无法访问add函数GETDATA

“”ZKR“”未引用值。“”‘(xcode)

我也不能创建树顶点数的计数器

代码语言:javascript
复制
#include <iostream>
#include <ctime>
#include <cstring>

using namespace std;
struct ZKR {

    char FACULTY[30];
    int ACADEMIC_DEGREE;
    char FIO[30];
};

struct point
{
    char *data;
    point *left;
    point *right;
};

point* tree(int n, point* p)
{
    point *r;
    int nl, nr;
    if (n == 0) { p = NULL; return p; }
    nl = n / 2;
    nr = n - nl - 1;
    r = new point;
    char s[50];
    cout << "Значение: ";
    cin >> s;
    r->data = new char[strlen(s) + 1];
    strcpy(r->data,s);
    r->left = tree(nl, r->left);
    r->right = tree(nr, r->right);
    p = r;
    return p;
}

void GETDATA(ZKR*M, int N)
{
    cin.ignore();
    for (int i = 0; i < N; i++)
    {
        cout << "\n";
        cout << "FACULTY: ";
        cin.getline(M[i].FACULTY, 30);
        cout << "\n";
        cout << "FIO: ";
        cin.getline(M[i].FIO, 30);
        cout << "\n";
        cout << "ACADEMIC DEGREE: ";
        cin >> M[i].ACADEMIC_DEGREE;
        cin.ignore();

    }
}
void treeprint(point *p, int &count) {
    if (p != NULL) {
        treeprint(p->left, count);
        cout << p->data << "  ";
        treeprint(p->right, count);
        if ((p->left == NULL) && (p->right == NULL))
            count = count + 1;
    }
}

int main()
{
    setlocale(LC_ALL, "russian");
    srand(time(NULL));
    int n = 0, k = 0, count = 0;
    point *beg = nullptr;
    cout << "Enter the number of students" << endl;
    int N;
    cin >> N;


    ZKR*M = new ZKR[N];

    do
    {
        cout << "1. BUILD a binary tree\n";
        cout << "2. SHOW a binary tree\n";
        cout << "3. GETDATA\n";
        cin >> k;
        switch (k)
        {
            case 1:
                cout << "Введите количество элементов" << endl;
                cin >> n;
                beg = tree(n, beg);
                cout << endl;
                break;
            case 2:
                treeprint(beg, count);
                cout << endl;
                cout << "Листьев в дереве: " << count << endl;
                break;

            case 3:
                GETDATA(ZKR*M, N);
                break;
        }
    } while (k != 4);
    system("pause");
    return 0;
}

我将非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-11-04 01:54:06

这一行在语法上不正确:

代码语言:javascript
复制
GETDATA(ZKR*M, N);

将其替换为:

代码语言:javascript
复制
GETDATA(M, N);

M是指向ZKR类型的对象的指针。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58682873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档