将char x []复制到c中的char * x []元素中

时间:2015-09-18 00:44:20

标签: c arrays pointers strcpy

假设我有以下c代码:

char some_string[50];
char* string_array[10];

如何将string的值复制到string_array的一个元素中?

我试过了:

strcpy(string_array[0], some_string);

但我收到一个总线错误10。

最终目标是拥有一个char * args [],我可以像这样传入execvp:

execvp(args[0], args);

1 个答案:

答案 0 :(得分:-1)

这很简单,只需编写 string_array [0] = some_string; 并在execvp调用中传递string_array [0]。

你不能使用strcpy,因为string_array的所有元素都是NULL(即没有指向某些可变内存或者可能包含一些垃圾值)。这就是为什么你得到总线错误(访问无效地址)。

您还可以分配动态内存,如: string_array [0] = malloc(50); ,然后使用strcpy但请记住在调用malloc()之前包含stdlib.h。

您可以通过以下方式获得更好的理解: http://ee.hawaii.edu/~tep/EE160/Book/chap9/section2.1.4.html