我想用指针修改结构数组的每个元素。
我正在使用两个不同大小的数组
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;
}
}
我在函数中使用指针正确方式吗?
答案 0 :(得分:0)
我在函数中使用指针正确方式吗?
从句法上讲,是的。
如果ptr
指向30个或更多对象的数组,则该函数将正常工作。否则,它将具有未定义的行为。
由于OP更改了batchInitializd
的对象类型,因此以下内容无效。
<击> 您可以将功能简化为:
void modifystruct(struct color *ptr)
{
for ( int i = 0; i < 30; i++)
{
ptr[i] = batchInitializd[i];
}
}
击> <击> 撞击>