无法找出我的C代码无效的原因

时间:2018-02-26 19:44:03

标签: c

这是我的C代码,旨在制作n元素的链接列表"" n从键盘读取""构建是100%成功但是当出现执行错误消息并且程序停止工作时。

typedef struct maillon* ptr;

struct maillon {
   int vale;
   ptr adr;
};

ptr Allouer( ptr p )
{
   return malloc( sizeof(struct maillon) );
}

void Aff_val( ptr p, int v )
{
   p->vale= v;
}

void Aff_adr( ptr p, ptr q )
{
   p->adr = q;
}

void main()
{
   ptr debut, courant, fin;
   int n, vale;
   scanf("%d",&n);
   Allouer(debut);
   Aff_val(debut,5);   //5 is a value that contains my 1st element 
   courant=debut;
   for (int i=1;i<=n;i++)
   {
      Allouer(fin);
      Aff_adr(courant,fin);
      printf("enter the value");
      scanf("%d",&vale);
      Aff_val(fin,vale);

      courant=fin;
   }
   Aff_adr(courant,NULL);
}

1 个答案:

答案 0 :(得分:4)

问题出在

<grid-layout ...></grid-layout>

未使用Allouer(debut); 返回的值。您不仅没有看到Allouer设置为有效指针,而且程序也遭受内存泄漏。将其更改为:

debut

建议进一步改进。

debut = Allouer(debut); 不使用输入参数。删除它会更好。

Allouer

然后,它的用法可以改为:

ptr Allouer()
{
   return malloc( sizeof(struct maillon) );
}