字符串指针与数组

2023-12-25

我想知道像这样定义的字符串之间是否有任何区别(在语法和性能方面)

char str[200];

and

char *str;
str = calloc(200, sizeof(char));

使用方面有区别吗? (例如,一个不兼容strncpy或者其他什么)更重要的是,性能方面是否存在差异?

EDIT:据我所知,数组定义为char * and calloc可以增长和收缩,但我应该选择堆内存而不是堆栈内存,还是出于任何原因选择相反的方式?这就是我真正想问的。


char str[200]分配在堆栈内存中,其中calloc()在堆内存中分配。

根据 calloc() 的性质,它将 0 分配给它分配的所有字节。

栈和堆的比较请参考下面

哪个更快:堆栈分配或堆分配 https://stackoverflow.com/questions/161053/c-which-is-faster-stack-allocation-or-heap-allocation

http://www.linuxquestions.org/questions/programming-9/stack-faster-than-heap-685004/ http://www.linuxquestions.org/questions/programming-9/stack-faster-than-heap-685004/

栈和堆是什么以及在哪里? https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串指针与数组 的相关文章

随机推荐