struct 相关问题

各种编程语言中的关键字,其语法类似于或派生自C(C ++,C#,Swift,Go,Rust等)。使用特定的编程语言标记来标记涉及使用`struct`作为语法的问题,语义可以依赖于语言。关键字定义或声明由其他数据类型组成的数据类型。结构的每个成员都有自己的内存区域(而不是“union”,其成员共享一个内存区域)。

C - 如何释放一个双空指针,该指针具有使用 malloc 分配给它的动态结构数组

我的C看起来像这样。 typedef 结构体 { 无效*fooStruct; } 事物; typedef 结构体 foo { int *somethingNumber; 烧焦一些东西; } foo; 外部无效 **double_ptr; 无效*ptr; int主要...

回答 1 投票 0

C++ 结构体的成员默认初始化为 0 吗?

我有这个结构: 结构体快照 { 双x; 整数y; }; 我希望 x 和 y 为 0。它们默认为 0 还是我必须这样做: 快照 s = {0,0}; 还有哪些其他方法可以归零...

回答 9 投票 0

有没有更简单的方法在 Go 中编写这个逻辑?

我在 Go 中有一个结构,如下所示: 类型 A 结构体 { 名称字符串 输入字符串 时间字符串 } 我想写一个less函数来比较两个struct A,例如 函数 (s A) less(

回答 1 投票 0

为什么 Swift 在某些链式调用中会抛出“无法在不可变值上使用变异成员”,而在其他链式调用中则不会?

在 Swift 中,我有一个自定义的 Deque 结构,其中包含用于添加和删除元素的各种变异方法。当我链接像 Deque.pushBack(contentsOf: ...) 这样的方法调用时,我遇到错误“

回答 1 投票 0

stuct.unpack() 以不同顺序读取十六进制转储文件数据

我正在使用 struct.unpack() 读取十六进制转储文件并将其转换为二进制表示形式,因为我只对少数位感兴趣。以下是一次阅读的示例。 我的二进制数据:(b'E\x01...

回答 1 投票 0

带有包装结构的不透明 C 结构

我正在阅读有关c中的不透明结构的内容,我想知道为什么似乎(至少我没有找到任何东西)没有人做这样的事情 结构体 LED_ { 短针; 布尔值; }; 类型定义...

回答 1 投票 0

如何修改pyspark dataframe嵌套结构列

我正在尝试对嵌套列进行匿名/哈希处理,但尚未成功。该架构看起来像这样: -- abc: 结构(可空 = true) | |-- xyz:结构(可空 = true) | | |--

回答 2 投票 0

C 中的结构体内存布局

我有 C# 背景。我对 C 等低级语言来说是个新手。 在C#中,struct的内存是由编译器默认分配的。编译器可以重新排序数据字段或填充额外的

回答 3 投票 0

结构体总是分配堆栈还是有时分配堆?

我的印象是,在 C# 中,结构元素是在堆栈上分配的,因此从创建它们的方法返回时会消失。但是如果我放置 struct-val 会发生什么......

回答 7 投票 0

创建结构数组,填充结构变量(由用户输入的4个字符串组成),打印这些变量

我正在尝试创建一个函数,允许创建一些由 4 个字符串组成的记录(我的数据库项目的一部分)。这个函数必须打印出这些记录 但它不打印...

回答 2 投票 0

带有包含结构的字符串的多线程

我无法弄清楚为什么在使用 pthread_join() 线程结束后字符串会损坏。 以下是 C 代码(不是 C++)和背景: 我正在调试一个大型程序,以解决多段错误

回答 1 投票 0

使用 Option<String> 和 Display 的其他非实现者,以及 assama::Template

我想使用相同的结构从 sqlx 接收数据并将该数据传递到 askama::Template 中。 (我会有很多这样的结构。) sqlx 让我使用 Option 作为列...

回答 1 投票 0

为什么建议在go中返回`error`接口而不是具体的错误类型?

go FQA 指出: 对于返回错误的函数来说,最好始终在其签名中使用错误类型(就像我们上面所做的那样),而不是使用 *MyError 等具体类型,以帮助保证...

回答 2 投票 0

具有可变引用数组的结构

这是我的代码。最初的问题有更大的代码,但最后我将其压缩到下一个: 结构数据<'a> { f: [&'a mut [u8]; 2], } 隐含数据<'_> { fn new() -> ...

回答 1 投票 0

带有结构成员的 C++ 联合结构适用于 Clang 和 MSVC,但不适用于 GCC

我正在尝试定义一个联合结构,其中一些结构和原始成员在内存中与一个简单的数组重叠。这在 Clang 和 MSVC 中完美运行,但不能用 GCC (G++) 编译。

回答 2 投票 0

为以结构作为值的动态分配的哈希图释放内存 - C

我已经遵循了一些关于 c 中的哈希图的教程。从代码中你可能可以看出我非常依赖这个实现,它有一个很好的后续视频,他在其中重新访问它以展示他如何...

回答 1 投票 0

为什么使用“StructLayout(LayoutKind.Sequential)”布局时,具有两个布尔值的结构体是 8 个字节? [重复]

这是我的结构 [StructLayout(LayoutKind.Sequential)] 公共结构系统服务状态{ public bool isSystemUiOverlaid; 公共布尔 isInBackgroundExecution; } 当

回答 1 投票 0

将 SystemVerilog 结构转换为 C/C++ 结构

在我的环境中的某个地方,有一个大文件,其中包含(以及其他内容)许多 64 位的系统 Verilog 结构, 例如。: typedef 结构体打包 { 逻辑 [63:63] my_field_1; 逻辑 [6...

回答 1 投票 0

C 语言的简单银行系统程序中的逻辑错误

因此,当用户在帐户(结构)上存入金额时,余额不会更新,因此我无法继续进行其他操作,例如提款等。 这是代码: #包括 因此,当用户在帐户(结构)上存入金额时,余额不会更新,因此我无法继续进行其他操作,例如提款等。 这是代码: #include <stdio.h> #include <stdlib.h> #include <string.h> struct bank_account { int account_number; char name[15]; char surname[15]; float balance; }; void deposit(struct bank_account, float); void withdraw(struct bank_account, float); void check_balance(struct bank_account); int main(int argc, char **argv[]){ // initialization of bank account with default values struct bank_account account; account.account_number = 1234567; strcpy(account.name, "Randy"); strcpy(account.surname, "Orton"); account.balance = 0; int choice; float amount; printf("Welcome to our Bank's environment!\n"); printf("Account number: %d\n", account.account_number); // Menu for banking operations do { printf("\nMenu:\n"); printf("1. Deposit\n"); printf("2. Withdraw\n"); printf("3. Check balance\n"); printf("4. Exit\n"); printf("Enter your choice: "); scanf("%d", &choice); switch (choice) { case 1: printf("Enter the amount to deposit: "); scanf("%f", &amount); deposit(account, amount); break; case 2: printf("Enter the amount to withdraw: "); scanf("%f", &amount); withdraw(account, amount); break; case 3: check_balance(account); break; case 4: printf("Thank you for your preference.\n"); break; default: printf("Invalid choise! Please try again.\n"); break; } } while(choice != 4); return 0; } // Function to deposit money into the account void deposit(struct bank_account account, float amount) { account.balance += amount; printf("Deposit succesfull! Current balance: %.2f\n", account.balance); } // Function to withdraw money from the account void withdraw(struct bank_account account, float amount) { if(amount > account.balance) printf("Insufficient balance. Cannot procceed with withdraw.\n"); else { account.balance -= amount; printf("Withdraw succesfull! Current balance: %.2f\n", account.balance); } } // Function to check account balance void check_balance(struct bank_account account) { printf("Current balance: %.2f\n", account.balance); } 我把它给了聊天 gpt 并说在函数括号内我需要包含一个指向结构的指针而不是结构本身以及要访问的函数中的这个运算符“->”(我不知道)结构成员,而不是我使用的点。 我问它是否可以在没有 -> 运算符的情况下以某种方式实现它,但它不能给我一个明确的答案。 那么你觉得呢?有没有其他方法或者我必须使用指针和“->”? 在您的 deposit 函数中,您按值传递结构。制作副本后,您可以修改该副本,然后不会对原始副本产生任何影响。您需要将 pointers 传递给您的结构。 例如 void deposit(struct bank_account *account, float amount) { account->balance += amount; printf("Deposit succesfull! Current balance: %.2f\n", account->balance); } 您的其他功能也需要纳入这一点。

回答 1 投票 0

我输入的字符串值未显示

我正在尝试创建一个 C 程序来显示最昂贵和最便宜的书籍(使用结构数据类型)。 但是当我输入所有值时,只显示浮点值(书价),没有...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.