例如,在C语言中,无论何时我想处理字符串(C语言都不支持),我都可以
char* String = (char*) malloc(25);
或者
char String[25];
我想知道这两种定义数组长度的方法之间的主要区别是C(除此之外,第一个是指针,第二个不是指针)。
我也想知道哪个更安全。
char* String = (char*) malloc(25);
char String[25];
两个数组对象之间的主要区别是生存期。对象的生存期的第一个开始于malloc
返回,并在free
被调用时结束。第二个元素的生存期取决于声明它的范围。在块作用域中,当输入块直到为止都将创建对象}
。在文件范围内,生存期从程序开始,并在程序结束时结束。
另一个区别是String
在第一种情况下是指针,在第二种情况下是数组名。例如,sizeof String
在第一种情况下,产生指针对象的大小,但在第二种情况下,产生数组对象的大小。
最后一点,请不要转换的返回值malloc
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句