c - 如何通过作为结构成员的指针访问数组缓冲区?
问题描述
我想通过结构内的指针访问 arr[8] 元素。我做了那个代码,但它显示错误。请帮我。我附上了下面的代码。
#include <stdio.h>
typedef struct
{
int var;
int *ptr;
} Info;
int arr[8] = { 1, 3, 5, 7, 9, 8, 6, 4 };
Info x = { 10, &arr[8] };
Info *new_ptr = &x;
void func (Info *new_ptr)
{
printf ("%d", *(new_ptr->ptr[2]));/* compiler showing error in this line */
}
int main ()
{
func (&x);
}
解决方案
#include <stdio.h>
typedef struct
{
int var;
int *ptr;
} Info;
int arr[8] = { 1, 3, 5, 7, 9, 8, 6, 4 };
Info x = { 10, arr };
void func (Info *new_ptr)
{
printf ("%d", new_ptr->ptr[2]);
}
int main ()
{
func (&x);
}
你需要学习一些关于指针和数组的基础知识。
推荐阅读
- vue.js - VueJS:如何访问路由文件中的参数值
- react-native - 找不到导航对象。您的组件是否在导航器的屏幕内?抽屉导航器
- xcode - XCode 12.4:发生内部错误编辑功能可能受到限制
- python - 查找与线的点距离 - python
- android - 每次单击按钮时更改文本视图文本
- android - 通过 rememberSaveable State 编写的 Android Jetpack Compose 无法在后退按钮中存活
- c++ - 错误:使用未声明的标识符“实验性”
- python - 使用 biopython 从 genbank 文件中获取功能时出现 KeyError
- gnuradio - 使用 RTL 和 USRP 进行 DSB 调制/解调
- c# - 防止在文本框上使用多行键输入以防最大长度