使用大小定义char数组指针

时间:2011-05-02 01:24:30

标签: c arrays string pointers definition

我想在下面两个声明之间进行交叉:

char string[6];
char * string;

我需要一个固定大小的指针,我想要使用malloc来做这么简单的事情。

所有这个char数组需要做的就是赋值,并通过函数检索它,如下所示。 (但是在循环中因此单独声明)这样做的最佳方法是什么?

string = "words";
printf("%s",string);

3 个答案:

答案 0 :(得分:3)

定义一个常量数组,其大小由初始化程序计算:

const char string[] = "words";

如果你只想要一个指向固定大小的内存量的指针,只需使用它:

const int STR_LEN = 10;
char str[STR_LEN];

... loop, etc

strncpy(string, "1234567890", STR_LEN);

... etc

答案 1 :(得分:3)

由于您现在声明不能使用@ nightcracker的解决方案,我认为您需要使用strncpy()来分配字符串。

char string[6];
/* .... loop code */
strncpy(string, "words", 6);
printf("%s", string);

我想在实际程序中你不会使用字符串文字,因此需要strncpy()

答案 2 :(得分:1)

为什么不使用它:

const char * string;
...
string = "words";
printf("%s",string);

(或您的问题不明确)