【发布时间】:2015-03-15 13:30:35
【问题描述】:
我是一名学生,我将在学校做一个关于数组的演讲。我有这段代码应该将整个数组分配给另一个数组。
#define MAX 10
#include <stdio.h>
typedef struct {
int data[MAX];
} INT_ARR;
int main()
{
int i;
INT_ARR arr1 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
INT_ARR arr2 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
arr1 = arr2;
return 0;
}
- 如何在实际项目中使用这种技术?
- 我能用这个做什么?
- 有什么优点和缺点?
【问题讨论】:
-
在实际编程中,您应该使用memcpy() 函数将一个数组的内容复制到另一个数组。或者可以使用
malloc()/calloc()动态分配数组,然后将一个数组的指针分配给另一个数组。取决于您的特定任务。 -
能否请有足够声誉的人将此作为重复项关闭(例如):stackoverflow.com/q/4530319/694576 或 stackoverflow.com/q/17500960/694576(我不小心敲错了答案... :-})
-
您作为原件提供的两个问题都是不同的问题,@alk。这是在以这种特定方式进行数组分配时询问实际考虑因素。我在引用的问题中没有看到这种方法,这当然不是他们的主要话题。
-
@Palec:C 不允许分配数组(
poleX = poleY;根本无法编译)。所以我想知道“以这种特定方式进行数组分配时的实际考虑”应该是什么,如果不是我链接的答案中提到的“解决方法”。 -
@SamProtsenko 我经常看到人们只是不熟悉 C 的这种能力,这太糟糕了。实际上,它是一种基本的自动资源管理。此处的示例非常简单,但是对于具有简单字段和数组字段的更复杂的结构,这可能非常有用。