Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我想用指针修改结构数组的每个元素。
我正在使用两个不同大小的数组
我在函数中使用指针的方式正确吗?
想改善这个问题吗?添加详细信息并通过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