字符数组指针我想下面这两个声明之间的交叉:定义与大小
char string[6];
char * string;
我需要一个指针具有固定的大小,我不想用malloc
的东西这么简单。
所有这个字符数组需要做的是被分配一个值并让它被一个函数检索,如下所示。 (但是,在循环中因此是单独的声明)执行此操作的最佳方法是什么?
string = "words";
printf("%s",string);
字符数组指针我想下面这两个声明之间的交叉:定义与大小
char string[6];
char * string;
我需要一个指针具有固定的大小,我不想用malloc
的东西这么简单。
所有这个字符数组需要做的是被分配一个值并让它被一个函数检索,如下所示。 (但是,在循环中因此是单独的声明)执行此操作的最佳方法是什么?
string = "words";
printf("%s",string);
既然你现在说,你不能使用@ nightcracker的解决方案,我认为你需要使用strncpy()
分配给字符串。
char string[6];
/* .... loop code */
strncpy(string, "words", 6);
printf("%s", string);
我想,在实际的程序中,你将不会被使用字符串字面量,因此对于strncpy()
的需要。
这样做,我希望避免它,但它看起来很隆重。 – 2011-05-02 01:38:09
定义一个常数阵列的大小被通过初始化计数:
const char string[] = "words";
如果只想一个指针的存储器的固定大小量的小,只使用它是这样的:
const int STR_LEN = 10;
char str[STR_LEN];
... loop, etc
strncpy(string, "1234567890", STR_LEN);
... etc
我忘了提及,分配和访问必须在一个循环中执行(因此事先声明) – 2011-05-02 01:33:50
怎样才能用没有malloc的指针来完成? – 2011-05-02 01:35:00
为什么不使用这样的:
const char * string;
...
string = "words";
printf("%s",string);
(或你的问题不明确)
+1:同意。这回答了所述的问题。如果不合适,那么这个问题需要澄清。 – 2011-05-02 01:42:19
什么是错了'字符*'? (好吧,除了它应该是一个'const char *'。) – 2011-05-02 01:38:08
使用'const char *'只是一个好的形式吗?还是有必要?既然它被设置为“单词”,它不能改变,我明白这一点,但为什么要添加'const'? – 2013-01-15 20:53:37