Fre*_*cer 6 c arrays multithreading struct coding-style
我确定这之前一定有人问过,但我似乎无法在任何地方找到答案。我在头文件中定义了一个结构,如下所示:
struct lock {
char *name;
// add what you need here
void *holder;
// (don't forget to mark things volatile as needed)
};
Run Code Online (Sandbox Code Playgroud)
我想制作一个锁对象列表。这样我就可以这样说:
lock_list[0] = create_lock();
lock_list[1] = create_lock();
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法,但它们都给我错误。我以为我可以简单地说:
lock[2] lock_list;
Run Code Online (Sandbox Code Playgroud)
但它没有用。任何帮助将非常感激。
如果create_lock()
返回指向 a 的指针lock
,则应执行以下操作:
lock *lock_list[2];
Run Code Online (Sandbox Code Playgroud)
此外,由于你没有张贴,你需要typedef
你的struct
,如果你希望能够省略struct
使用时部分:
typedef struct lock lock;
Run Code Online (Sandbox Code Playgroud)
如果它不是固定大小,您可以生成一个链表:
typedef struct lock_t lock;
typedef struct lockList_t lockList;
struct lock_t {
char *name;
void *holder;
}
struct lockList_t {
lock lock_entry;
lockList *lock_next;
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用 lockList 的实例来存储动态大小的锁列表。
归档时间: |
|
查看次数: |
16120 次 |
最近记录: |