c - 附加两个结构

标签 c gcc

我正在尝试将两个结构合并为一个 例如。

l1 = add(1, add(2, NULL));
l2 = add(3, add(4, NULL));
myappend(l1,l2) = add(1,add(2,add(3,add(4,NULL))))

我尝试了很多我能想到的其他方法......但它不起作用......任何人都可以帮助我吗?

struct list_node {
   struct list_node * rest;
   int first;
};

list add(int in, list l) {
   list r = malloc(sizeof(struct list_node));
   r->first = in;
   r->rest = l;
   return r;
}
// My attempted solution;
list myappend(list l1,list l2){
   list k = malloc(sizeof(struct list_node));
   k=l2;
   k=add(l1,k);
   return k;
}

最佳答案

list myappend(list l1,list l2){ 
   list k = l1;
   while (k->rest != NULL)
   {
     k = k->rest;
   }
   k->rest = l2;
   return l1; 
}

应该适合你。

关于c - 附加两个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11682704/

相关文章:

c - 使用pthread执行矩阵乘法

c++ - 我是否误解了这个默认参数 shared_ptr 的范围?

c - GCC 与 C11 标准中的位字段类型

c - 无锁地将一个值从一个线程传输到另一个线程

c - 如何将字节从 char 数组转移到 int

c - MPI发送/接收程序永远不会完成

c - 在 RPI 交叉编译器上链接 libwiringPi

linux - 阐明 “./configure” 选项 “--build” 、 “--host” 和 “--target”

c - 将 .txt 中的单词转换为 C 中的数组

c++ - 使用鼠标从视频上的矩形设置 ROI