为什么要使用字符指针的大小

阿尤什·夏尔马

这句话的含义是什么?

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章