如何使用malloc为非指针对象(如互斥锁)分配空间?

Jse*_*ess 2 c malloc mutex

我是C的新手,一直致力于获取指针等等.我正在学校里练习,我们应该把所有必需的记忆都包括在内,包括互斥体.据我所知,malloc总是返回一个指向某个内存的指针(除非它失败).如果是这种情况,你会怎么malloc为类似互斥的东西,从根本上不是指针?

在作业中,我们非常明确地说我们必须为互斥体做这件事,但我找不到如何在任何地方做到这一点.

最后,我不希望任何人担心"给我答案",因为那不是我所分配的问题; 相反,这是我们应该做的内存监控的必要条件; 我只是不确定应该是什么样的正确语法.

Adr*_*ian 6

你可以指向任何类型的指针.

您的互斥锁可能定义如下:struct mutex_t {..}.如果是这样,你可以有一个指向它的指针:struct mutex_t *my_mutex你可以在以后使用它来存储malloc返回的指针.看这个例子:

struct mutex_t *my_mutex;
my_mutex = malloc(sizeof(struct mutex_t));
Run Code Online (Sandbox Code Playgroud)

第二行启动my_mutex指向指向您的互斥结构大小的内存的指针.现在,很可能你正在使用的库定义函数来初始化它void mutex_init(struct mutex_t*),你可以使用它来实际构造malloc保留的内存中的互斥.