首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在struct内部定义struct指针

在struct内部定义struct指针
EN

Stack Overflow用户
提问于 2019-12-27 07:23:20
回答 1查看 59关注 0票数 0

我的struct是这样的:

代码语言:javascript
复制
typedef struct runnable
{
    /* something */
    struct runnable *next;
} runnable_t;

在一些函数中:

代码语言:javascript
复制
int myFun(runnable_t runnable)
{
   /* something */
   runnable.next = NULL;
   pool->first = &runnable;
   pthread_cond_signal(&(pool->myCond));
   pthread_mutex_unlock(&(pool->lock));
}

而且,在其他一些func2中:

代码语言:javascript
复制
if (pool->first == NULL)
            pthread_cond_wait(&(pool->myCond), &(pool->lock));

printf("%d\n",pool->first);

好的,所以: myFunc应该在NULL和信号myCond旁边设置runnable->,然后我需要在其他函数中使用runnable->next。

问题是在func2: runnable->next中不是空的。我已经检查过了,两个函数的runnable地址是相同的,runnable的其他地址也是正确的。只有这个“下一个”道具。不是。我假设我对struct和'next‘的定义是合理的。

什么是struct runnable_t * nextrunnable_t * next的差异(如果可能的话)

这有问题吗?

EN

回答 1

Stack Overflow用户

发布于 2019-12-30 15:00:21

问题是在int myFun(runnable_t runnable)中不会通过引用传递结构,所以只会更改结构的副本,而不是原始传递的结构

您必须将函数行为更改为int myFun(runnable_t* runnable),并在函数中将runnable.更改为runnable-> (runnable->next = NULL;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59494408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档