gpt4 book ai didi

c - 是否可以使用指向 char (char **pptr_char) 的指针来存储动态数量的动态大小字符串?

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

变量char **pptr_char开头为NULL 。但随着程序的进行,我们从用户那里获取字符串输入。每个字符串都存储在 **pptr_char 中因此需要在 X 和 Y 维度上动态分配内存。这在 C 语言中可能吗?

由于所有字符串的长度不相同,指针算术将如何计算,即*ptr_char+1转到下一个字符串?

知道如何完成吗?

最佳答案

是的,这是可能的。您可以使用 ptr_char + i 移动到第 i 个字符串。字符串长度不同并不重要。唯一重要的是指针的长度相同,当然它们是相同的。

                Points to memory location      Memory location contains
ptr_char X a pointer to string1 (string could live anywhere)
ptr_char + 1 X+4 (or 8 for 64-bit) a pointer to string2 (string could live anywhere)
ptr_char + 2 X+8 (or 16) a pointer to string3 (string could live anywhere)

因此,您首先分配一个内存块来保存 N char* (该 block 开始一个内存位置 X (当然,X code> 是操作系统为您选择的任何内容 - 您无法控制)。

然后为第 i 个字符串分配内存,并将第 ichar* 设置为指向该内存。

关于c - 是否可以使用指向 char (char **pptr_char) 的指针来存储动态数量的动态大小字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11271176/

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