将char数组复制到另一个char数组

时间:2011-06-24 21:09:05

标签: c

我正在努力将char数组复制到另一个char数组。我已经尝试将memcpy直接从一个地址复制到另一个地址,如下所示:

void include(int id, char name[16]) {
int i;

  for (i = 0; i < SZ; i++) {
      if (a[i].id == 0) {
          a[i].id = id;
          memcpy(&a[i].name, &name, strlen(name)+1);
          return;
      }
  }
}

但显然只适用于此功能。我也尝试过这样:http://www.cplusplus.com/reference/clibrary/cstring/memcpy/但它没有用。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:4)

& 中删除&name,它应该有效。你的功能声明具有误导性;它实际上相当于:

void include(int id, char *name)
  

编译器假装该数组   参数被声明为指针

如果name是一个数组,name == &name。但是name是指针name != &name

C FAQ提出了一些可能有用的问题: