【问题标题】:Array of struct modify with pointer [closed]用指针修改结构数组[关闭]
【发布时间】:2016-09-29 21:41:39
【问题描述】:

我想用指针修改结构数组的每个元素。

我正在使用两个不同大小的数组

struct color 
{

    char red;
    char blue;
    int white;
};

struct colorInit
{

    char red;
    char blue;
    int white;
    int padding[60]; 
};


struct color batch1[30];

struct colorInit batchInitializd[30]; 

void modifystruct ( struct color *ptr)

{

  for ( int i = 0; i < 30; i++)

  {

     ptr[i].red = batchInitializd[i].red;

     ptr[i].white = batchInitializd[i].white;

     ptr[i].blue = batchInitializd[i].blue;

}

}

我是否在函数中正确使用指针?

【问题讨论】:

标签: c arrays struct


【解决方案1】:

我在函数中使用指针的方式正确吗?

从语法上讲,是的。

如果ptr 指向包含 30 个或更多对象的数组,该函数将正常工作。否则,它将具有未定义的行为。

以下内容不再有效,因为 OP 更改了 batchInitializd 的对象类型。

您可以将函数简化为:

void modifystruct(struct color *ptr)
{
   for ( int i = 0; i < 30; i++)
   {
      ptr[i] = batchInitializd[i];
   }
}

【讨论】:

  • 请立即检查代码并告诉我
  • @Damodaran,也可以。
  • ......................谢谢萨胡
猜你喜欢
  • 2021-04-03
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 1970-01-01
  • 2010-12-21
  • 2017-09-01
相关资源
最近更新 更多