gpt4 book ai didi

c - 它不允许我将变量存储到结构中的数组

转载 作者:行者123 更新时间:2023-12-02 06:18:02 26 4
gpt4 key购买 nike

大家好,我有这个程序,它的基本功能是创建一个集合并要求用户添加输入。然后程序将检查输入,如果该输入已经在程序中,它会要求用户输入单个输入。

这是我一直在使用的结构:

struct memory
{
int num;
char element[MAXNUMB];
};
typedef struct memory *Item;

这是创建函数:

Item Create()
{
Item set;
set=(Item*)malloc(sizeof(Item));
set->num=0;
return set;
}

这是添加函数:

void Add(Item S,int x)//add an element to set S
{
Item set;
int i,flags;
flags=0;
if(S==NULL)//gives error if set doesn't exist
{
printf("Memory Allocation failed. Goodbye!");
exit(EXIT_FAILURE);
}
printf("Please enter an input: ");//takes input from user
scanf("%d",&x);
for(i=0;i<n;i++)//checking for similar inputs
{
if(set->element[i]!=x)
{
flags=1;
}
else
{
if(flags!=1)
flags=0;
}
}
while(flags==0)
{
printf("Error! Integer already exists! Please enter a different input: ");
scanf("%d",&x);
for(i=0;i<n;i++)
{
if(set->element[i]!=x)
{
flags=1;
}
else
{
if(flags!=1)
flags=0;
}
}
}
set->element[set->num]=x;//it is crashing on this line
printf("x");
n++;
set=realloc(set,n*sizeof(Item));
set->num++;
}

我的程序在这一行崩溃了

set->element[set->num]=x;

如果你能给我一些关于如何解决这个问题的建议,我将不胜感激。谢谢

最佳答案

这一行

set=(Item*)malloc(sizeof(Item));

应该阅读

set=malloc(sizeof(struct memory));

因为你想分配更多的内存而不仅仅是一个指针

关于c - 它不允许我将变量存储到结构中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com