gpt4 book ai didi

c - 连续调用 malloc 是否会在上一次调用 c 之后直接分配空间?

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:29 24 4
gpt4 key购买 nike

我说的是使用 char* 和动态数组。具体来说,我想使用一个二维数组将一行命令和选项分解成它们的组件

例如:

char *dynamicArr = malloc(1 * sizeof(char));//allocate first letter
int i = 0;
while(string[i] != '\0'){
dynamicArr[i] = string[i];
//would I be able to allocate more memory onto the end of dynamicArr here?
}

显然,在这种情况下我可以只使用 strlen 和 strcpy,但我正在尝试使用各种标记“''\"' 和 '\'' 来解析一行命令。因此各个字符串不是空终止的。我已经使用静态二维数组编写了它,但我想让它成为动态的,以便它可以处理任何大小的命令。

最佳答案

Will successive calls to malloc allocate space directly after the previous call in c?

没有。不必要。 malloc 分配连续的内存块,但它不保证下一次调用 malloc 会在前一个调用之后分配内存块。

I have written it using Static 2d arrays but I want to make it dynamic so that it can handle commands of any size.

使用realloc()功能。

关于c - 连续调用 malloc 是否会在上一次调用 c 之后直接分配空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23233883/

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