返回介绍

16.4 One more word about arrays

发布于 2025-02-22 14:00:46 字数 267 浏览 0 评论 0 收藏 0

现在我们来理解下面的 C/C++代码为什么不能正常使用 10:

#!cpp
void f(int size)
{
    int a[size];
...
};

这是因为在编译阶段编译器不知道数组的具体大小无论是在堆栈或者数据段,无法分配具体空间。 如果你需要任意大小的数组,应该通过 malloc() 分配空间,然后访问内存块来访问你需要的类型数组。或者使用 C99 标准[15,6.7.5/2],但它内部看起来更像 alloca()(4.2.4)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文