gpt4 book ai didi

c - 内存受限系统中的数组

转载 作者:太空狗 更新时间:2023-10-29 15:53:30 26 4
gpt4 key购买 nike

考虑我的系统有内存,但它分散在不同的地方(碎片化)。没有四个连续的内存位置是空闲的。在那种情况下,如果我在 C 语言中声明一个大小为 10 的字符数组,会发生什么情况?

最佳答案

如果“我的系统有内存,但它分散在不同的地方(碎片化)” 意味着,heap virtual memory是零散的,“声明一个大小为 10 的字符数组” 意味着,您在 stack memory 中创建了大小为 10 的字符数组。 :

char str[10];

,则数组创建成功。

如果 “声明一个大小为 10 的字符数组” 意味着您使用 malloc() 分配内存(在堆中分配):

char *str2;
str2 = (char*) malloc(10 * sizeof(char));

,然后 malloc() 将返回 NULL。

关于c - 内存受限系统中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4666969/

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