我想在下面两个声明之间进行交叉:
char string[6];
char * string;
我需要一个固定大小的指针,我不想要使用malloc
来做这么简单的事情。
所有这个char数组需要做的就是赋值,并通过函数检索它,如下所示。 (但是在循环中因此单独声明)这样做的最佳方法是什么?
string = "words";
printf("%s",string);
答案 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);
(或您的问题不明确)