【发布时间】:2013-04-25 13:13:12
【问题描述】:
这是一个作业问题,我相信这是一个语法问题。我有一个程序,它的方法使用字符数组来表示字符串。我正在尝试将部分数组复制到一个临时变量中。我传入这些变量:
int numbers[], char arr1[][20], char arr2[][20], int l, int r
并初始化/复制到临时变量中:
char *temp1;
char *temp2;
temp1 = arr1[l];
temp2 = arr2[l];
这段代码可以编译,我相信它可以工作。当我尝试将临时变量分配给数组中的位置时,就会出现问题。我都试过了:
arr1[l] = temp1;
arr2[l] = temp2;
和
arr1[l] = &temp1;
arr2[l] = &temp2;
所有这些都会导致以下错误:
error: incompatible types in assignment
所以很明显我没有正确地写这些陈述。两者都是char类型(我不知道这是否与问题有关)。我不知道我该如何解决这个问题。有人可以帮忙吗?
【问题讨论】:
-
不能通过赋值操作符复制一个 C 数组。您需要 memcpy() 从一侧到另一侧的内容,或者将数组埋在结构中并使用结构副本。
-
strcpy() 也可以吗?如果是这样,那么我应该例如写: strcpy(arr1[l], temp1);而不是:arr1[l] = temp1;?
-
我让它工作了。非常感谢。
标签: c arrays pointers variable-assignment