小编Oni*_*adu的帖子

C将节点添加到链表头部

我在c中创建了一个链表结构

struct node{
   int value;
   struct node* next;
};
Run Code Online (Sandbox Code Playgroud)

在列表开头添加节点的方法:

void addFirst(struct node *list, int value){
    struct node *new_node = (struct node*) malloc (sizeof (struct node));
    new_node->value = value;
    new_node->next = list;
    list = new_node;
   }
Run Code Online (Sandbox Code Playgroud)

我创建了一个列表(malloc和所有东西),然后调用这个方法,它在方法中添加了新节点,但是当我回到我的main时,我的旧列表保持不变.使用DDD调试器检查所有内容.这怎么可能?我无法更改方法签名,所以必须这样做.

c linked-list head nodes

2
推荐指数
2
解决办法
4万
查看次数

深层复制结构到POSIX共享内存

我有两个结构:

struct bets{
   int bets[36];
   int last_bet;
}bets
struct board{
   int type;
   bets *bet;
 }board
Run Code Online (Sandbox Code Playgroud)

我创造了一大块鲥鱼记忆sizeof(board).所以,我在共享内存中得到了一个指向Board的指针(以免称之为ptr).我创建了一个新的boardbets结构 board *b,bets * bts....添加board->bet = bts.现在,我将"b"复制到了ptr memcpy(ptr, bts, sizeof(board)).我可以访问ptr->type.但是当我尝试访问时 ptr->bet->last_bet,我遇到了分段错误错误.

我也试过像这样复制:

board *b;
memcpy(ptr, b, sizeof(board));
bets *bts;
memcpy(ptr->bet, bts, sizeof(bets)).
Run Code Online (Sandbox Code Playgroud)

仍然得到分段错误错误.

如何将两个struct one复制到另一个内部并仍然可以访问嵌套的?

c memory shared nested structure

1
推荐指数
1
解决办法
477
查看次数

标签 统计

c ×2

head ×1

linked-list ×1

memory ×1

nested ×1

nodes ×1

shared ×1

structure ×1