在C中向const数组添加新元素

时间:2013-12-18 11:49:15

标签: c arrays eclipse parent-child strcat

我有2个主要和儿童节目。主叫儿童。我在主要过程中创建了如下所示的密钥

static const unsigned char key[] = {4,1,8,9,1,61,64,220};

我正在用

显示它
printf("\nkey:\t %X\n", key);

结果是:4018EF

子进程

static const unsigned char key[] = {4,1,8,9,1,61,64,220};

我正在用

显示它
printf("\nkey:\t %X\n", key);

结果是:401061

为什么结果不同?

实际上我将尝试从child添加最后一个元素,例如220,并比较两个键。我的意思是主要是{4,1,8,9,1,61,64,220},孩子将是{4,1,8,9,1,61,64}。在for循环中,我将尝试添加最后一部分。如果它命中,那么它会说“OK Equals”。 (我试图做但失败了)现在我很困惑因为结果不同。请帮帮我。

1 个答案:

答案 0 :(得分:4)

它们是不同的,因为它们是static,因此每个C文件都有自己独特的数组。

您(无效地)将地址打印为无符号数字(打印地址的正确方法是使用%p和强制转换为void *),这样您就可以看到两个数组居住在不同的地方。

您不能“添加”到常量数组。您可以为一个元素保留空间并将其设置为稍后替换的某个“未使用”值,但当然您不能这样做并保留它const,因为您将不得不写入数组为了做到这一点。