首页 > 解决方案 > 如何通过作为结构成员的指针访问数组缓冲区?

问题描述

我想通过结构内的指针访问 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);

}

标签: c

解决方案


#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);
}

你需要学习一些关于指针和数组的基础知识。


推荐阅读