2017-02-12 462 views
-2

我需要将char添加到char数组中。这是我的代码:将char添加到C中的char数组中

#define BUFFSIZE 1024 
char *first_name[][BUFFSIZE]; 
char *last_name[][BUFFSIZE]; 

int j = 0; 
first_name[][j] = "John"; 
last_name[][j] = "Doe"; 

这是在相应数组的第零位输入“John”和“Doe”的正确方法吗?

+1

阅读上'strcpy',也或许你需要用'字符FIRST_NAME [BUFFSIZE]' –

回答

0

你的声明

char *first_name[][BUFSIZE]; 

声明指针的2维阵列。如果你想要一串字符串,它应该是:

char first_name[][BUFSIZE]; 

但是,这缺少了第一维的大小。忽略大小只允许在函数参数声明中使用,因为它实际上是声明指针的简写(因为将数组传递给函数会衰减到指针)或灵活数组成员的声明中(它必须是一个struct,所以你不能有两个在同一个结构中)。我猜你的变量实际上是函数参数。

不能使用分配填写在C字符串,你必须使用strcpy()

strcpy(first_name[i], "John"); 
+0

我试过这样做。但阵列并未保留其价值。 first_name在for循环中,在第3次或第4次迭代之后,该值似乎在first_name [0]中发生变化。 –

+0

请发布[MCVE](http://stackoverflow.com/help/mcve)来说明问题。 – Barmar

+0

您可以访问代码在这里 https://docs.google.com/document/d/1T4j3S_MEd0EKekMGGKi0z-nQYZVQmou1mUdUrn3x7rE/edit?usp=sharing –