Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中为数组包含索引是一种好的做法吗?_C_Arrays_String_Char - Fatal编程技术网

在C中为数组包含索引是一种好的做法吗?

在C中为数组包含索引是一种好的做法吗?,c,arrays,string,char,C,Arrays,String,Char,我在C中有一个存储字符串的数组,我需要能够动态地附加到此数组。将此数组的索引存储在单独的变量中是一种很好的做法,还是有更好的方法?这是我的密码 首先定义这些变量 char x[10][10]; int x_index = 0; 将字符串添加到此数组中 strcpy(x[x_index], "hello"); x_index += 1; strcpy(x[x_index], "world"); x_index += 1; 您应该将索引称为数组的长度,因为它是:数组中有效项的数量。还有其他条目,

我在C中有一个存储字符串的数组,我需要能够动态地附加到此数组。将此数组的索引存储在单独的变量中是一种很好的做法,还是有更好的方法?这是我的密码

首先定义这些变量

char x[10][10];
int x_index = 0;
将字符串添加到此数组中

strcpy(x[x_index], "hello");
x_index += 1;
strcpy(x[x_index], "world");
x_index += 1;

您应该将索引称为数组的长度,因为它是:数组中有效项的数量。还有其他条目,但不应访问它们

这不仅是良好的做法,而且在大多数情况下,有必要跟踪当前的规模。否则,您怎么知道ehere要附加下一项?在C中,这必须通过一个额外的变量来完成。(确保您可以看到数组和长度属于一个一致的命名法。)

确保长度不超过数组的大小,在您的示例中为10。通常,您必须同时跟踪长度和大小,其中大小可以是编译时常量

if (xlen < XSIZE) strcpy(x[xlen++], str);
if(xlen

(当然,您还必须注意不要使10个字符的缓冲区溢出。)

对于需要以任何方式解析每个元素(并且只解析,不插入)的数组,最好在数组末尾放置一个特殊值,例如字符数组中的“\0”,以便告诉解析循环何时停止。

如果数组已填充,您该怎么办?@SebastianWalla这段代码当然是一个示例,在生产
if(x\u索引)中