尝试复制固定长度的数组

时间:2017-11-04 10:19:14

标签: c arrays sizeof

我试图重复一个数组的元素但是陷入无限循环 数组的大小目前是2,我试图再次重复这些元素,使大小为5,例如 样本输出:     char a[]="ED"; 试图成功     char a[]="EDEDE"; 代码如下

while(sizeof(a)<5)
{
    for(i=0;i<2;i++){
        a[fk]=a[i];
        fk++;}
}

进入无限循环

2 个答案:

答案 0 :(得分:0)

  

使尺寸为5,

任何类型T的数组都是这样定义的

T a[] = ... some initialiser ...;

或者像这样

T b[42];

无法调整大小(在C中)。

答案 1 :(得分:0)

C11 6.4.5字符串文字(P7):

  

未指明这些数组是否与它们不同   元素具有适当的值。如果程序试图   修改这样的数组,行为是未定义的。

所以,如果你将a重新分配给其他东西,则没有调整大小,否则它是未定义的行为。