pointers 相关问题

“指向”存储在内存中的另一个值的数据类型。指针变量包含某个其他实体(变量或函数或其他实体)的内存地址。此标记应用于涉及指针使用的问题,而不是引用。使用指针的最常见编程语言是C,C ++,Go和汇编语言。使用特定语言标记。其他有用的标签是描述指针使用的方法,函数,结构等。

在 C 中取消引用指针时出现意外值

以下代码 #包括 int main() { 长长数据 = 0xFFFEABCD11112345; char *pData = (char *)&data; printf("地址 %p 处的值为 %x “,pData,*...

回答 1 投票 0

如何覆盖字符串缓冲区而不修改它的早期使用

我最近开始学习C,我正在尝试实现一个哈希图数据结构。 我目前正在将我的存储桶实现为动态调整数组支持列表的大小。 当测试我的bucket_re时...

回答 1 投票 0

带有指针数组的strcmp

我正在开发一个函数来对指向字符串数组的指针数组进行排序。我已经完成了代码的构建,但它崩溃了,没有错误消息。调试器告诉我它在“if(

回答 1 投票 0

C 中使用 Malloc 的数组和指针

我有这个有效的代码。但我对指针数组的工作原理感到困惑,你不需要初始化数组吗?这段代码怎么可能只有'&arr[i]'。其次,为什么不...

回答 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

realloc() 在这段代码中实际上做了什么?

#包括 #包括 #包括 #包括 int main() { 字符*s; s = malloc(1024 * sizeof(char)); scanf("%[^ ]”,s...

回答 1 投票 0

为什么我在将 char 数组作为参数传递给函数并为其分配新值时无法修改它?

void ChangeName(char* 名称) { //其他行动 //strcpy(名称,“字符串”); ——这个工作 姓名=“马库斯”; // -- 这不起作用 } int main() { 字符名称[...

回答 1 投票 0

尽管内存地址相同,Rust Arc 指针比较还是失败

在 Rust 中,我试图创建一组可以在某种目标/依赖链中相互关联的对象。我想我可以使用一个特征,并为每个对象分配一个“目标”......

回答 1 投票 0

多维数组的一部分在分配给不同部分后无法访问

我有一个3维数组。 int maxStrLen、int numberColumns、int numberRows 都设置为大数字,这不可能导致输入越界 char*** KanMingBan = malloc(...

回答 1 投票 0

为什么两个指针数组返回不同的地址?

在下面的代码中,我认为两个输出是相同的。但事实上他们不是!在我的电脑中,第一个输出是0x6ffde0,而后一个输出是0x6ffdb0。 #包括 在下面的代码中,我认为两个输出是相同的。但事实上他们不是!在我的电脑中,第一个输出是0x6ffde0,而后一个输出是0x6ffdb0。 #include<iostream> using namespace std; int main(){ const char *s[] = {"flower","flow","flight"}; char *s1[] = { (char*)"flower",(char*)"flow",(char*)"flight" }; cout << s<< endl; // 0x6ffde0 cout << s1<< endl; // 0x6ffdb0 return 0; } 我尝试输出“flower”和(char*)“flower”的地址。结果是一样的。 cout<<(int *)"flower"<<endl; // 0x488010 cout<<(int *)(char*)"flower"<<endl;// 0x488010 谁能解释一下这个问题吗? 表达式中使用的数组指示符(极少数例外)会隐式转换为指向其第一个元素的指针。 如这两个数组 const char *s[] = {"flower","flow","flight"}; char *s1[] = { (char*)"flower",(char*)"flow",(char*)"flight" }; 占用不同的内存范围,那么第一个元素的地址是不同的。

回答 1 投票 0

当我传递函数的结构时,预期的 fn 指针,找到闭包

我创建了一个 impl,以便能够管理一些异步函数,这些函数必须在我的应用程序打开后立即执行。 我的问题是,当我传递一个结构作为参数时,编译器给出以下内容...

回答 1 投票 0

有人可以向我解释一下吗,我很困惑

这是代码: #include“stm32f4xx.h” #定义BASE_ADDRESS 0x2000000 #定义偏移量0x500 #定义偏移量B 0x506 int 主函数(无效) { uint8_t *ptr,索引; uint16_t 测试; 指针 = (

回答 1 投票 0

想了解结构体指针和void指针转换

#包括 #包括 typedef 结构体 { 字符*名称; 无符号整型年龄; 无符号整型高度; 无符号整数权重; } person_t; int main() { ...

回答 1 投票 0

如何在不安全代码中初始化枚举中的结构

我正在尝试使用 Box::new_uninit_in 和 ptr::addr_of_mut! 初始化一个枚举变体,在我的例子中它是一个结构体。然而,我正在努力进入正确的领域。有人可以帮我吗...

回答 1 投票 0

在 C 中为 void* 的第一个元素数组调用 `free` 系统调用

这是一段C代码: int main() { void **values = calloc(10, sizeof(void *)); int *a = malloc(sizeof(int)); *a = 100; int *b = malloc(sizeof(int)); *b = 200; 价值观...

回答 1 投票 0

虚幻引擎:一帧后指针指向另一个地址

我在 UE5.3 中的第一个代码块中遇到了奇怪的行为,没有在其他引擎版本上进行测试,如果这是一个初学者问题,我深表歉意! 我的班级 { 私人的: 浮动*值; 公开...

回答 1 投票 0

无法在C++中存储指向类的指针

我正在编写一个模型套件集合管理器,为此我编写了一个 shell,其中包含一些如下变量: 类 MonkeyShell { 私人的: 布尔_exitFlag; // 保持循环继续的值...

回答 1 投票 0

对象属性引用导致SIGSEGV

/**************************************************** ********************************** 欢迎来到广发在线。 GDB Online 是一个在线编译器和调试器工具,适用于 C、C++、Python、Java、PHP、Ruby、Perl...

回答 3 投票 0

使用指针将 char 分配给 char*

假设我有一个 char *str,我想使用指针和递增来一次一个地为其分配字符? 我已经搞定了 : 字符*str; 字符c = 'a'; *str++=c; 但这不起作用。 怎么会...

回答 5 投票 0

你能用自己的地址声明一个C指针吗?

我可以声明一个 C 指针并对其自己的地址进行初始化吗? 无效* p = &p; 我特别关心这是否严格符合 C23 标准(目前的草案)。 我

回答 1 投票 0

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