如何使用非文字条目初始化char * const数组?条目来自标准输入。我尝试过
char * const args[2] = (char * const *)calloc(2,1025);
sscanf(command,"%s %s ",args[0],args[1]);
/*args will be used later*/
如果不存在转换,则得到“无效的初始化程序”,如果存在转换,则得到“ cast指定数组类型”。如果我完全避免使用calloc,则args的两个条目最终都为空。似乎无论我做什么,在声明char * const类型的数组后都无法用值填充。
[calloc
在元素数为2时不进行两次分配。这将是与从malloc
中得到的分配相同,但为零。
如果您真的希望指针本身为const
,则需要进行数组初始化:
char * const args[2] = {
calloc(1025, sizeof(char)),
calloc(1025, sizeof(char))
};
注意,每个数组中的元素数为1025,每个元素的大小为sizeof(char)
。