Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        3年前关闭。
                                                                                            
                
        
我想用指针修改结构数组的每个元素。

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

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;

}

}


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

最佳答案

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


从句法上讲,是的。

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

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


您可以将功能简化为:

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

关于c - 用指针修改结构的数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39780480/

10-11 15:10