在c++中创建一个链接列表(stucts数组不能用)。

所以,我接到了一个任务,要给链接的列表写一个小的打印功能,我没有任何麻烦(我想),但是我不能创建列表本身。我没有任何问题(我想),但是我不能创建列表本身。我试过在用户输入值后立即分配和链接列表中的成员,但是我在给不存在的成员分配指针时遇到了很多麻烦。所以我决定在一开始就获取所有成员的数据,然后再链接它们。我现在遇到的问题是,出于某种原因,当向一个动态结构数组写入数据时,数据只写给第一个成员,尽管我没有任何错误,而且语法看起来也不错。这是我的代码。


typedef int ELMNT;
typedef struct list
{
    ELMNT element;
    struct list * next;
}DLIST;

DLIST createList()
{
    std::cout << "Enter the length of an array: ";
    int arrLength;
    std::cin >> arrLength;
    int integer;
    std::cin >> integer;
    DLIST mylist;
    mylist.element = 0;
    mylist.element = integer;

    DLIST* listptr = new DLIST[arrLength];
    for (int i = 0; i < arrLength; ++i)
    {
        std::cin >> integer;
        listptr[arrLength].element = integer;
    }


    for (int i = 0; i < arrLength; ++i)
    {
        std::cout << listptr[arrLength].element;
    }

    return mylist;
}

int main()
{
    createList();
}

TL:DR:第3行到第8行是任务给出的。我需要创建一个动态链接列表,问题在于 listptr[arrLength].element = integer; 没有达到预期的效果(完全不工作)。有什么办法吗?似乎是某种语法错误或拼写错误,但我一个半小时也解决不了。

EDIT:Oh thanks to the comments I see that next are not initialized when creating. How to do I initialize them? 如何做我初始化他们?用NULL?

解决方案:

我不知道你到底为什么要做你正在做的事情,你的代码看起来一点也不像一个链接列表,但是错误在这里。

for (int i = 0; i < arrLength; ++i)
{
    std::cin >> integer;
    listptr[arrLength].element = integer;
}

应是

for (int i = 0; i < arrLength; ++i)
{
    std::cin >> integer;
    listptr[i].element = integer;
}

for (int i = 0; i < arrLength; ++i)
{
    std::cout << listptr[arrLength].element;
}

应是

for (int i = 0; i < arrLength; ++i)
{
    std::cout << listptr[i].element;
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何设置报表仪表盘的数据库

2022-9-13 14:07:39

未分类

python: 独立移动张量中的每个矩阵。

2022-9-13 14:07:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索