C中的循环变量

C中的循环变量,c,pointers,2d,C,Pointers,2d,我有一个指针指针,我想要一个循环来遍历它们,并将其值存储到其他东西中。有办法吗 e、 g: 现在我想将其读入另一个变量: char **variable2 我想做这样的事情: for(i = 0;i <LENGTH_OF_VARIABLE-1;i++){ variable2[i] = variable[i+1] } 但这在c语言中是不可能的,对吗 现在您可能会问为什么variable2=variable?那么variable2应该只存储变量的一部分,而不是全部。 编辑:变量

我有一个指针指针,我想要一个循环来遍历它们,并将其值存储到其他东西中。有办法吗

e、 g:

现在我想将其读入另一个变量:

char **variable2
我想做这样的事情:

for(i = 0;i <LENGTH_OF_VARIABLE-1;i++){
      variable2[i] = variable[i+1]
}
但这在c语言中是不可能的,对吗

现在您可能会问为什么variable2=variable?那么variable2应该只存储变量的一部分,而不是全部。
编辑:变量的大小未知,其动态从命令行读取。不,它的结尾不包含“\0”。使其被处理以删除这样的字符,然后传递给我正在实现的函数

如果您已经在**变量中添加了任何内容,这是否意味着您已经正确分配了内存? 我想你们最好修改一下,了解一下简单的一维数组是如何工作的,在了解了这个之后,再转到双数组。然后看看指针是如何工作的,并学习如何分配内存。在理解了上面提到的这些步骤之后,看看双指针和双指针情况下的内存分配。

这当然是可能的,但您做得不对。更具体一点-您有一个先前分配的二维字符数组,并且想要创建该数组的深度副本?要做到这一点,您必须知道数组和所有字符数组的长度。变量的确切来源是什么?如果此函数既不告诉您返回数组中有多少个元素,也不在末尾提供特殊的终止值,那么您需要返回提供它的人并获取其中的一个元素。在没有结束标记或已知大小的情况下,不能在退化数组上迭代。在C语言中,数组或指针变量没有存储任何信息。您必须知道数组的长度,或者必须用一个特殊值标记数组的结尾。如果是字符串,则使用值\0。否则,你就找不到数组的结尾,当你尝试遍历它时,你就超出了它的界限,很可能会因为分段错误而崩溃。问题中描述的接口完全被破坏了,我怀疑这还不是它的全部。也许从每个字符串中删除“\0”的同一个函数也分配了一个整数数组,给出每个字符串的长度,并以某种方式使指向该数组的指针可用;或者它提供了一些其他的方法来知道每个字符串的长度。或者这可能是一个未经深思熟虑的错误,但是如果你问这个接口的设计者如何在没有segfault的情况下复制第一个字符串,他们可以解释它,或者他们会看到自己的错误。
for(i = 0;i <LENGTH_OF_VARIABLE-1;i++){
      variable2[i] = variable[i+1]
}