gpt4 book ai didi

C - 我可以在不指定每个槽大小的情况下创建一个二维数组吗

转载 作者:行者123 更新时间:2023-11-30 14:42:59 25 4
gpt4 key购买 nike

在我的作业中,我被要求编写一个程序,其中一部分是创建一个二维数组并将 10 个名称放入其中。现在他们没有指定每个名称的大小,现在我的问题是如何在不指定每个名称大小的情况下制作二维数组?char arr[10][?] = {0};

最佳答案

如果您还没有了解指针,那么最简单的方法是 Weather Vane 的建议,确定名称的最大长度并将其用于二维数组中的每个子数组。

您不需要“删除那些多余的空(或0)'槽'”,因为当您在c中编写字符串时,或者当您对字符串使用scanf或printf时,字符串将以空结尾。这意味着当您将名称放入子数组时,该名称可能已经有一个空终止符(值为 0)来表示字符串的结尾。当使用处理空终止字符串的函数时,空终止之后的每个值都将被忽略。

例如。

char name[] = "Bob";

实际上相当于执行以下任一操作:

char name[] = { 'B', 'o', 'b', '\0'};  //'\0' is a null termination
char name[] = {0x42, 0x6F, 0x62, 0x0}; // ascii hex codes, '\0' translates to 0x0

(如果字符串以 null 结尾并且您使用的函数知道这一点,则 name[] 有多大并不重要)。如果由于某种原因,当您输入名称时它还没有它,您可以手动插入一个空终止符。

关于C - 我可以在不指定每个槽大小的情况下创建一个二维数组吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54224658/

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