插入元素后,Sizeof 运算符无法正常工作

问题描述 投票:0回答:1

我正在尝试用 C 编写一个程序来将元素插入数组。 我使用 sizeof 运算符来确定数组的元素总数,但在插入元素并重复使用 sizeof 运算符后,它似乎无法正常工作(它给了我相同的结果而不增加)。 预先感谢。

// Exercise N9 - Code Win
// Arrays.
#include <stdio.h>

int main()
{
    
    int user_input;
    
    int array[] = {1,2,3,4,5};
    
    
    printf("Hey User !\n");
    printf("Enter an element :\n");
    scanf("%i",&user_input);
    
    int elements_number;
    elements_number = sizeof(array) / sizeof(array[0]);
    
    int new_element_index;
    new_element_index = elements_number;  // Because computer starts from zero.
    
    array[new_element_index] = user_input;
    
    int elements_number_after;
    elements_number_after = sizeof(array) / sizeof(array[0]);
    
    int i;
    
    for (i = 0 ; i < 6 ; i++)
    {
        printf("%i ",array[i]);
    }
    
    printf("\n");
    printf("%i\n",elements_number);
    printf("%i\n",elements_number_after);
    
    return 0;
}

arrays c element sizeof
1个回答
0
投票

在 C 中,数组不会增长,也不会缩小。
因此(忽略代码中的未定义行为)如果您的计算告诉您在执行任何操作后数组大小是相同的,那么它实际上是正确的。
准确地说,这是关于实际数组的,任何带有

malloc()
的内容都超出了这里的范围。

© www.soinside.com 2019 - 2024. All rights reserved.