C 结构体和指针

标签 c pointers struct

我正在看一本书并自学 C。现在我正在尝试使用 bitArray 来查找特定数字下的素数数量。默认情况下,这本书给了我一个结构和一个以以下开头的函数:

typedef struct _seg {
   int  bits[256];
   struct _seg *next, *prev;
} seg;

*seg whichseg(int j){

}

但是,这个函数 *seg Whichseg(int j){ 在编译时抛出错误。我想知道它应该是 seg * 并在 seg 之后加一个星号吗?这个函数到底是什么意思,它是否使 j 自动成为 seg 结构?

谢谢大家:-)

最佳答案

您应该在 seg 之后添加 *,即 seg*

到目前为止,你的函数什么也没做,并且通过进行上述更改,编译器仍然会提示说值没有被改变。

我假设您想将 j 值放入节点中,并且我将其放在零位置的位数组中。

seg* whichseg(int j){
       seg* segNode = malloc(sizeof(seg));
       seg->bits[0]=j;
       return seg;
}

关于C 结构体和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18940382/

相关文章:

c++ - 将结构内的二维数组传递给另一个结构

c - 加载运行者: String Array

c - 指向结构体指针的指针

c++ - 删除自定义数组导致堆错误

pointers - 如何创建指向未确定大小类型的拥有指针?

c - const 结构实例中成员的有效类型?

c - 为什么下面的代码会导致碎片错误?

c - For循环不打印数组

c# - C dll向C#返回多个变量

c# - 如何将结构从 C++ 迁移到 C#