如何分配指针指向数组的内容?

时间:2011-12-09 21:36:58

标签: c arrays pointers

我有一个char指针指向内存的地址,我需要获取该地址的内容并将其放入char数组中?

char *msg;

char cntnt[10]; 

msg指向“mike”,我需要将此字符串放入cntnt[10]

我喜欢这个

*cntnt = *msg;

当我这样做时,cntnt只能得到一个字母'm'。

请帮忙......

4 个答案:

答案 0 :(得分:3)

使用strcpy:

strcpy(cntnt, msg);

答案 1 :(得分:3)

尝试使用strcpymemcpy

len = strlen(msg);
if (len >= sizeof(cntnt))
    /* Bail out, not enough space. */

memcpy(cntnt, msg, len);
cntnt[len] = 0;

答案 2 :(得分:0)

使用memcpyn个字节数从该指针复制到数组中:

char cntnt[10];
memcpy(cntnt, msg, 9);
仅当您有msg指针指向的空终止字符串内存时,才建议使用strcpy。

答案 3 :(得分:0)

指针和数组不相等。它们在某些方面只是相似的。 因此,在您的代码之后,您只更改了数组中的一个元素。

如果要更改cntnt本地化的位置,则应编写

cntnt = msg;

如果你想将char序列的内容复制到数组,请使用strcpy,正如Tudor所说。 这是对该主题的一个很好的解释:http://c-faq.com/~scs/cclass/notes/sx8.html