Questions tagged «struct»

各种编程语言中的关键字,其语法类似于或衍生自C(C ++,C#,Swift,Go,Rust等)。使用特定的编程语言标签来标记涉及使用“ struct”的问题,因为语法和语义可能取决于语言。关键字定义或声明由其他数据类型组成的数据类型。结构的每个成员都有其自己的内存区域(与“ union”相反,后者的成员共享一个内存区域)。

12
用C或C ++返回结构是否安全?
我的理解是不应该这样做,但是我相信我已经看过了类似示例的示例(注意,代码在语法上不一定正确,但思想确实存在) typedef struct{ int a,b; }mystruct; 然后是一个功能 mystruct func(int c, int d){ mystruct retval; retval.a = c; retval.b = d; return retval; } 我了解,如果我们想执行以下操作,则应始终返回指向malloc结构的指针,但我很肯定看到了执行此操作的示例。它是否正确?就我个人而言,我总是返回指向malloc的结构的指针,或者只是通过对该函数的引用进行传递并在那里修改值。(因为我的理解是,一旦函数的作用域结束,用于分配结构的任何堆栈都将被覆盖)。 让我们在问题中添加第二部分:这是否因编译器而异?如果可以,那么最新版本的台式机编译器(gcc,g ++和Visual Studio)的行为是什么? 有什么想法吗?

16
C中struct成员的默认值
是否可以为某些结构成员设置默认值?我尝试了以下操作,但会导致语法错误: typedef struct { int flag = 3; } MyStruct; 错误: $ gcc -o testIt test.c test.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token test.c: In function ‘main’: test.c:17: error: ‘struct <anonymous>’ has no member named ‘flag’
82 c  struct 

14
如何在C#中将结构转换为字节数组?
如何在C#中将结构转换为字节数组? 我定义了这样的结构: public struct CIFSPacket { public uint protocolIdentifier; //The value must be "0xFF+'SMB'". public byte command; public byte errorClass; public byte reserved; public ushort error; public byte flags; //Here there are 14 bytes of data which is used differently among different dialects. //I do want the flags2. However, so …
82 c#  struct 

5
C-结构内部的功能
我试图在结构内创建一个函数,到目前为止,我有以下代码: typedef struct client_t client_t, *pno; struct client_t { pid_t pid; char password[TAM_MAX]; // -> 50 chars pno next; pno AddClient() { /* code */ } }; int main() { client_t client; //code .. client.AddClient(); } 错误:client.h:24:2:错误:在“ {”令牌之前应为“:”,“,”,“;”,“}”或“属性”。 哪个是正确的方法?
82 c  function  struct 

6
初始化C ++结构的正确方法
我们的代码涉及一个POD(普通旧数据结构)结构(这是一个基本的c ++结构,其中包含其他结构和POD变量,需要在开始时对其进行初始化。) 根据我所读的文章,似乎: myStruct = (MyStruct*)calloc(1, sizeof(MyStruct)); 应该将所有值初始化为零,如下所示: myStruct = new MyStruct(); 但是,当用第二种方法初始化该结构时,Valgrind随后抱怨说,当使用这些变量时,“条件跳转或移动取决于未初始化的值”。我的理解是否存在缺陷,还是Valgrind抛出假阳性?

4
结构有什么特别之处?
我知道在C语言中,我们不能从函数返回数组,而只能返回指向数组的指针。但是我想知道有什么特别之处structs,即使它们可能包含数组,它们也可以由函数返回。 为什么struct包装使以下程序有效? #include <stdio.h> struct data { char buf[256]; }; struct data Foo(const char *buf); int main(void) { struct data obj; obj = Foo("This is a sentence."); printf("%s\n", obj.buf); return 0; } struct data Foo(const char *buf) { struct data X; strcpy(X.buf, buf); return X; }


5
Swift常数:Struct或Enum
我不确定两者中哪个最好定义常量。结构或枚举。每次我使用与否,都会复制一个结构吗?当我想到带有static let常量的结构时,我认为它会一直复制是没有意义的。但是,如果它不会被复制,那我拿走什么都没关系? 选择结构或枚举有什么优势? 弗朗西斯科说使用Struct的。 雷·温德利希说要用枚举。但是我缺乏理由。


5
成员在结构中的顺序重要吗?
我在C中发现了一种特殊的行为。请考虑以下代码: struct s { int a; }; struct z { int a; struct s b[]; }; int main(void) { return 0; } 它编译就好了。然后z像这样更改struct成员的顺序 struct z { struct s b[]; int a; }; 突然之间我们得到了编译错误field has incomplete type 'struct s []'。 这是为什么?
77 c  struct 

5
如何在golang切片中搜索元素
我有一部分结构。 type Config struct { Key string Value string } // I form a slice of the above struct var myconfig []Config // unmarshal a response body into the above slice if err := json.Unmarshal(respbody, &myconfig); err != nil { panic(err) } fmt.Println(config) 这是此的输出: [{key1 test} {web/key1 test2}] 我如何搜索此数组以获取元素在哪里key="key1"?
77 go  struct  slice 


8
memset()或值初始化以将结构归零?
在Win32 API编程中,通常将Cstruct与多个字段一起使用。通常,其中只有几个具有有意义的值,而所有其他值都必须归零。这可以通过以下两种方式之一来实现: STRUCT theStruct; memset( &theStruct, 0, sizeof( STRUCT ) ); 要么 STRUCT theStruct = {}; 第二个变体看起来更干净-它是单线的,它没有任何可能被错误键入并导致植入错误的参数。 与第一个变体相比,它有什么缺点吗?使用哪个变体,为什么?

5
结构初始化向量
我想知道如何使用该push_back方法将值添加到结构向量中 struct subject { string name; int marks; int credits; }; vector<subject> sub; 那么,现在如何向其中添加元素? 我有初始化字符串名称的函数(以它的主题名称为准) void setName(string s1, string s2, ...... string s6) { // how can i set name too sub[0].name= "english", sub[1].name = "math" etc sub[0].name = s1 // gives segmentation fault; so how do I use push_back …
76 c++  vector  struct  push-back 

3
Go中的结构初始化数组
我是Go的新手。这个问题使我发疯。您如何在Go中初始化结构数组? type opt struct { shortnm char longnm, help string needArg bool } const basename_opts []opt { opt { shortnm: 'a', longnm: "multiple", needArg: false, help: "Usage for a"} }, opt { shortnm: 'b', longnm: "b-option", needArg: false, help: "Usage for b"} } 编译器表示希望;在之后[]opt。 我应该在哪里把大括号{初始化结构数组?
76 arrays  struct  go 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.