标签: structure

将1-D阵列推入C中的2-D阵列

我正在研究队列数据结构.结构是:

struct queue
{
 char array[MAX_LENGTH][8];
 int back;
};
Run Code Online (Sandbox Code Playgroud)

它旨在存储7个字符长的MAX_LENGTH字符串列表.我希望推出一个包含8个字符的1D数组(好吧,7个字符和\ 0,就像结构中的数组一样).

我有这个推送代码:

void push (struct queue *q, char s[]){
 q->array[q->back] = s;
}
Run Code Online (Sandbox Code Playgroud)

我认为这可能有用,但显然没有.在cl(.net的C/C++)编译器中,我收到以下错误:

2.c(29):错误C2106:'=':左操作数必须是l值

gcc在同一行返回一个类似的错误(但我忘记了,此刻无法访问gcc).

我对结构和指针都很新,所以可能有一些非常明显我没做的事情.感谢任何帮助:)

c arrays struct pointers structure

3
推荐指数
1
解决办法
237
查看次数

在C和C++中使用结构

我是C的新手,我想知道如何访问放置在结构中的结构内部的元素.

struct profile_t
{
    unsigned char length;
    unsigned char type;
    unsigned char *data;
};

typedef struct profile_datagram_t
{
    unsigned char src[4];
    unsigned char dst[4];
    unsigned char ver;
    unsigned char n;
    struct profile_t profiles[MAXPROFILES];     
} header;
Run Code Online (Sandbox Code Playgroud)

如何访问profile_t中的元素?

c structure

3
推荐指数
1
解决办法
302
查看次数

当一个结构有c-tor时,为什么我不能静态初始化它呢?

我的问题:当一个结构有c-tor时,为什么我不能静态初始化它?

我的编译器声称:

type `myStruct' must be initialized by constructor, not by `{...}'
Run Code Online (Sandbox Code Playgroud)

这是为什么 ?我正在使用gcc版本3.4.4(cygming special,gdc 0.12,使用dmd 0.125)

为了说明,这是struct编译器拒绝的.

struct myStruct
{
    int a;
    double b;

    myStruct() { a= 0; b = 0.0; }
}

void main()
{
    myStruct ms = {7, 7.7}; // Now this compiler does not accept.
} 
Run Code Online (Sandbox Code Playgroud)

c++ static constructor structure initialization

3
推荐指数
1
解决办法
357
查看次数

将数组和结构传递给C函数

我想知道为什么我们可以通过值将结构传递给C函数,但我们永远不能对数组(通过地址传递)做同样的事情.

当我学习C时,他们告诉我数组会消耗很多堆栈,因此不希望按值传递它们.

但似乎结构通常(如果不总是)大于数组并且是更复杂的数据结构,所以这个解释现在对我来说没有意义!

任何人都可以帮助尽可能多的细节吗?

arrays structure function memory-address

3
推荐指数
1
解决办法
6210
查看次数

使用结构解引用运算符在C中粘贴令牌

我有一个关于'##'的问题,用于使用解除引用运算符进行预处理器粘贴.谁能告诉我为什么下面的代码不能编译?

typedef struct
{
    char data;
} MY_STRUCT;

MY_STRUCT  My_Instance;
MY_STRUCT* My_PInstance;

#if 1
#define GET_MEMBER(membername)         (My_PInstance->##membername)
#else
#define GET_MEMBER(membername)         (My_Instance.##membername)
#endif
Run Code Online (Sandbox Code Playgroud)

然后我打电话给:

char value = GET_MEMBER(data);  // Where My_PInstance is properly instantiated.
Run Code Online (Sandbox Code Playgroud)

我收到编译错误.

error: pasting "->" and "data" does not give a valid preprocessing token
Run Code Online (Sandbox Code Playgroud)

c structure token dereference c-preprocessor

3
推荐指数
1
解决办法
1510
查看次数

UML中的关联关系

正如我从Roger Pressman的书中读到的软件工程附录1那样

两个类之间的关联意味着它们之间存在结构关系

结构关系意味着什么?

uml structure associations relationship

3
推荐指数
1
解决办法
473
查看次数

在C中传递"直接"结构作为函数

我对C中的结构有一个简单的问题.

我有这个结构和这个功能:

struct Vec2
{
  int x;
  int y;
}

void draw(Sprite* sprite, struct Vec2 pos);
Run Code Online (Sandbox Code Playgroud)

无论如何在c ++中做相同的操作?

draw(foo, new Vec2(10, 20));
Run Code Online (Sandbox Code Playgroud)

我试过这个,但编译器不同意我的意见:

draw(foo, {10, 20} );
Run Code Online (Sandbox Code Playgroud)

有人帮忙吗?

编辑:我在C++模式下使用Visual C++ 2008 Express,但对于我的学校,我必须使用C语言编写,而不是C++

c structure function

3
推荐指数
1
解决办法
154
查看次数

为什么Python中没有"raise"和"del"函数?

从Python 2到Python 3的一个基本变化就是创建print一个函数 - 对我而言,它的结构非常合理.为什么raisedel语句也不起作用?特别是在raise它似乎正在采取争论并用它做某事的情况下,就像一个函数一样.

python structure function python-3.x

3
推荐指数
1
解决办法
61
查看次数

令牌粘贴通用结构

我试图使用令牌粘贴在C中定义一些简单的通用结构.其中一个例子如下: -

#define VECTOR(type, dimension, name) \
    typedef struct Vector_##type{ \
        type data[##dimension##]; \
        int dim = dimension; \
    }##name##;
VECTOR(int, 3, Vector3i)
Run Code Online (Sandbox Code Playgroud)

根据我的理解,由于嵌入了参数,第2和第5行必须进行标记粘贴,而出于相反的原因,第4行不需要标记粘贴.

但是,由于上面的简单示例导致以下错误,我似乎在我的理解中遗漏了一些内容: -

pasting formed '[3', an invalid preprocessing token VECTOR(int, 3, Vector3i)

pasting formed '3]', an invalid preprocessing token VECTOR(int, 3, Vector3i)

expected member name or ';' after declaration specifiers
VECTOR(int, 3, Vector3i)
~~~~~~~~~~~~^~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

鉴于上述错误,我错过了什么,以及在纯C中定义通用结构的适当方法是什么?

c structure c-preprocessor

3
推荐指数
1
解决办法
47
查看次数

在for循环中声明C++的结构是否合法?

我刚刚在Gcc编译器中试验了以下程序.我想知道,申报循环中的结构并在GCC中正常工作.

#include <iostream>

int main()
{
      int i = 0;
      for(struct st{ int a{9}; }t; i<3; i++)
            std::cout<<t.a<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

那么,在for循环中声明结构是否合法?

DEMO

c++ for-loop structure declaration

3
推荐指数
1
解决办法
182
查看次数