gpt4 book ai didi

c++ - 在 C/C++ 中添加到没有大小的数组

转载 作者:行者123 更新时间:2023-11-30 21:15:46 24 4
gpt4 key购买 nike

以下代码编译并输出 6 :

#include <stdio.h>

int main(){
int a[]={};
a[0] = 5;
a[1] = 6;
printf("%d\n", a[1]);
return 0;
}

这是正确的还是我陷入了未定义的行为并且这段代码幸运地运行了?我可以添加到没有大小的数组吗?

最佳答案

int a[]={};

该程序格式不正确。本地(或静态)存储可能不存在大小为零的数组。 (允许零大小的动态数组,尽管我还没有发现它们的用途)。

am I getting into undefined behaviour

a[0] = 5;
a[1] = 6;

您访问数组边界之外的元素。程序的行为未定义。

Adding to an Array

Can I add to an array...?

无法向数组添加元素。数组的大小在其整个生命周期中保持不变。

您可以做的是动态创建一个更大的新数组,并将旧数组中的元素复制到新数组中。有一个标准容器可以实现此功能:std::vector

关于c++ - 在 C/C++ 中添加到没有大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57023251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com