吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1331|回复: 1
收起左侧

[求助] 求大佬解答这个C语言列表问题

[复制链接]
mt1425 发表于 2019-12-18 19:33
[C] 纯文本查看 复制代码
int main()
{

	List l3,l2,l4;
	List* l1 = &l3;;
	l2 = *(ttt)malloc(sizeof(List));
	l3 = *(ttt)malloc(sizeof(List));
	l4 = *(ttt)malloc(sizeof(List));

	printf("************\nList工具设计\n************\n\n");
	while (1)
	{
		printf("\n\n请输入你所要实现的功能:\n");
		printf("1.初始化/切换List\n2.向列表的尾部追加指定的元素\n3.在列表的指定位置插入指定元素\n4.从列表中移除所有元素\n5.列表包含指定的元素\n6.返回列表中指定位置的元素\n7.返回列表中首次出现指定元素的索引\n8.如果列表不包含元素\n9.返回列表中最后出现指定元素的索引\n10.移除列表中指定位置的元素\n11.移除列表中出现的首个指定元素\n12.从列表中移除指定 List c 中包含的所有元素\n13.用指定元素替换列表中指定位置的元素\n14.返回列表中的元素数\n");
		int k;
		scanf_s("%d", &k);
		if (k == 1)
		{
			printf("请选择您需要切换的list");
			int kk;
			scanf_s("%d", &kk);
			if (kk == 1)
			{
				List* l1 = &l3;
			}
			else if (kk == 2)
			{
				List* l1 = &l2;
			}
			List_Init(l1);
			printf("初始化完成\n");
			getchar();
			printf("请按任意键继续...\n");
			getchar();

		}

我这是摘了我写的其中的一部分,求大佬解答在运行的时候怎么由l2切换成l3,在对l3进行一些操作。
总之就是分别对l2,l3进行操作

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

z1390595 发表于 2020-1-13 10:11
[C++] 纯文本查看 复制代码
#include "stdio.h"

struct List{
   int value;
};

int main()
{ 
	
    List l3,l2,l4;
    List* l1 = &l3;
	l3.value = 3;
	l2.value = 2;
    printf("************\nList工具设计\n************\n\n");
    while (1)
    {
        printf("\n\n请输入你所要实现的功能:\n");
        printf("1.初始化/切换List\n2.向列表的尾部追加指定的元素\n3.在列表的指定位置插入指定元素\n4.从列表中移除所有元素\n5.列表包含指定的元素\n6.返回列表中指定位置的元素\n7.返回列表中首次出现指定元素的索引\n8.如果列表不包含元素\n9.返回列表中最后出现指定元素的索引\n10.移除列表中指定位置的元素\n11.移除列表中出现的首个指定元素\n12.从列表中移除指定 List c 中包含的所有元素\n13.用指定元素替换列表中指定位置的元素\n14.返回列表中的元素数\n");
        int k;
        scanf("%d", &k);
        if (k == 1)
        {
            printf("请选择您需要切换的list");
            int kk;
            scanf("%d", &kk);
            if (kk == 1)
            {
                l1 = &l3;
            }
            else if (kk == 2)
            {
                l1 = &l2;
            }
			printf("%d\n",l1->value);
            //List_Init(l1);
            //printf("初始化完成\n");
            getchar();
            printf("请按任意键继续...\n");
            getchar();
 
        }
	}
	
	return 0;	
}


删了点、加了点东西用于调试,测试结果是选1输出l2的值,选2输出l3的值。
主要问题我认为应该是出在这里
[C++] 纯文本查看 复制代码
            scanf_s("%d", &kk);
            if (kk == 1)
            {
                List* l1 = &l3;
            }
            else if (kk == 2)
            {
                List* l1 = &l2;
            }

l1已经是结构指针了,为什么在使用的时候要重新定义?直接使用l1=&l2这样来切换不就好了?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表