这句话的含义是什么?
char *str[10];
为什么我们需要指定尺寸?
正如评论中已经指出的,char *str[10];
描述了一个char
指针数组。这将很有用,例如,如果直到运行时才知道此对象将包含的字符串长度。一旦在运行时确定每个字符串的长度char *
需要为25(例如),则可以在堆上动态创建内存:
for(i=0;i<10;i++)
{
str[i] = calloc(26,1);//room for 25 char plus NULL terminator for each char *
}
如果字符串长度被运行时之前已知的,则字符数组的数组可以在堆栈上创建的:
char str[10][26]
这两种方法中的任何一种都可以创建字符串数组。第一种方法要求在使用完对象后释放内存:
for(i=0;i<10;i++)
{
if(str[i]) free(str[i]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句