JAX*_*JAX 0 c
在C中,例如,任何时候我想处理字符串(C不支持),我也可以
char* String = (char*) malloc(25);
要么
char String[25];
我想知道这两种定义数组长度的方法之间的主要区别在于C(除此之外,第一个是指针,第二个不是).
我也想知道哪一个更安全.
oua*_*uah 5
两个数组对象之间的主要区别是生命周期.第一个是对象的生命周期在malloc返回时开始,在free调用时结束.第二个的生命周期取决于声明它的范围.在块范围内,在输入块时创建对象,直到}.在文件范围内,生命周期从程序开始,到程序结束时结束.
malloc
free
}
另一个区别是String第一种情况是指针,第二种情况是数组名称.例如,sizeof String在第一种情况下产生指针对象的大小,但在第二种情况下产生数组对象的大小.
String
sizeof String
最后要注意的是,不要转换返回值malloc.
归档时间:
11 年,3 月 前
查看次数:
46 次
最近记录: