作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将一些数据传递到共享内存,该内存只接受指针。所以我需要信号量位于这个结构中,但如果是的话,我无法向它添加值。我该如何修复它?所以,这是结构:
typedef struct querem_usar {
int conta_homem;
int conta_mulher;
int conta_crianca;
struct sembuf lock[4];
struct sembuf unlock[4];
} queremUsar;
这就是我必须声明的方式:
queremUsar *banheiro;
但是如果我尝试设置一个值来锁定或解锁,如下所示:
banheiro->lock[0].sem_num = 0;
banheiro->lock[0].sem_op = -1;
banheiro->lock[0].sem_flg = 0;
banheiro->unlock[0].sem_num = 0;
banheiro->unlock[0].sem_op = 1;
banheiro->unlock[0].sem_flg = 0;
我遇到段错误。我已经尝试过使用 malloc,如下所示:
banheiro->lock = (struct sembuf*)malloc(sizeof(struct sembuf));
banheiro->unlock = (struct sembuf*)malloc(sizeof(struct sembuf));
但它给了我错误:
error: incompatible types when assigning to type ‘struct sembuf[4]’ from type
‘struct sembuf *’
请帮我解决一下吗?完整代码在这里:https://gist.github.com/4553796第 71 行不应被注释,我这样做是为了测试代码。去尝试一下,这是针对大学的,所以一点也不复杂,应该是使用共享内存(shm,我不能使用线程)和 semop() 作为信号量的男女通用浴室问题。
最佳答案
使用此结构定义
typedef struct querem_usar {
int conta_homem;
int conta_mulher;
int conta_crianca;
struct sembuf *lock[4];
struct sembuf *unlock[4];
} queremUsar;
这会起作用
关于c - 如何将值附加到转换为指针的结构中的 struct sembuf ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14372511/
我需要将一些数据传递到共享内存,该内存只接受指针。所以我需要信号量位于这个结构中,但如果是的话,我无法向它添加值。我该如何修复它?所以,这是结构: typedef struct querem_usar
我正在编写一个程序,该程序使用信号量和信号量缓冲区在并行编程中进行互斥。这是导致错误的代码位以及使用 sembuf 指针的信号和等待函数。 #include #include #include
我是一名优秀的程序员,十分优秀!