【发布时间】:2015-12-01 11:42:16
【问题描述】:
我正在尝试使用长字符串初始化 char 数组。但是,我不希望它被 NULL 终止。
这个:
const char s[] = "The actual string is much longer then this...";
比这更容易阅读(和写作):
const char s[] = {'T', 'h', 'e', ' ', 'a', 'c', 't', 'u', 'a', 'l', ' ', 's', ...};
但前者得到NULL 终止。有没有办法避免字符串文字上的NULL?
这样做的原因是需要在开发期间已知的固定大小长度的内存中密集地打包字符串。
【问题讨论】:
-
为什么要避免使用
NULL-terminator? -
我们需要更多信息才能为您提供有用的答案。例如,这种初始化是否只会在程序的生命周期中发生一次?性能有问题吗?外部问题是什么?
-
它实际上是一个字符串数组,为了各种快速索引目的,我需要将它们紧紧地打包到内存中(字符串之间没有
NULL) -
索引数组的代码如何知道字符串在哪里结束?
-
请将此约束添加到问题中。
标签: c++ arrays initialization