“如何创建固定长度的数组”;“字符串”;在C中?

“如何创建固定长度的数组”;“字符串”;在C中?,c,arrays,string,char,low-level,C,Arrays,String,Char,Low Level,我正试图用C语言创建一个固定长度的“字符串”数组,但遇到了一些麻烦。我遇到的问题是,我遇到了分割错误 我的程序的目标是:使用从文本文件读取的数据,通过索引设置数组的字符串。以下是我当前代码的要点(很抱歉,我无法添加整个代码,但它相当长,可能会引起混乱): 请注意,如果字符串的长度可以是256个字符,则需要其容器的长度为257字节,以便添加最后的\0空字符 typedef char FixedLengthString[257]; FixedLengthString stringArray[N];

我正试图用C语言创建一个固定长度的“字符串”数组,但遇到了一些麻烦。我遇到的问题是,我遇到了分割错误

我的程序的目标是:使用从文本文件读取的数据,通过索引设置数组的字符串。以下是我当前代码的要点(很抱歉,我无法添加整个代码,但它相当长,可能会引起混乱):


请注意,如果字符串的长度可以是256个字符,则需要其容器的长度为257字节,以便添加最后的
\0
空字符

typedef char FixedLengthString[257];
FixedLengthString stringArray[N];
FixedLengthString currentString;

代码的其余部分应该具有相同的行为,尽管可能需要一些强制转换来满足希望使用
char*
const char*
而不是
FixedLengthString
的函数(根据编译器标志,可以将其视为不同的类型).

您将
stringArray
声明为
n
的数组,指向256个字符的数组。这听起来不像。。。“正常”。也许这里已经有答案了@JoachimPileborg是的,我也觉得有点奇怪。。这是基于第二个答案:谢谢,这看起来很有意义。我会测试一下,然后再给你回复!您知道我是否需要将fread second参数更改为257以适应建议的更改吗?不知道。容器的大小与读取的文件的大小不同。您只需确保容器与读取的文件一样大或更大。好的,因此,如果容器与读取的文件大小相同,它仍然可以工作?
char stringArray[n][256]
也可以工作,而不引入数组typedef(这会混淆代码,IMHO)。
typedef char FixedLengthString[257];
FixedLengthString stringArray[N];
FixedLengthString currentString;