- 主题:新手请教个char数组初始化的问题
今天看了一段前辈写的留下来的老代码,大量的char数组初始化用了 strcpy(para,"");我一般都用char para[MAX]={0};
这两种方法哪种更好更安全呢?
--
FROM 222.131.243.*
strcpy(para,"")的效果只是para[0] = 0,
char para[MAX]={0}的效果是para[0]到para[MAX-1]全部为0(记得VC++上是这样,memset后,再执行para[0] = 0。VC可以简写为char para[MAX]={})
如果后续的代码依赖于"para全部为0"这个前提,那用strcpy(para,"")这种来初始化就是错误的。
从代码尺寸和速度上说,上面两个都不如"para[0] = 0"这个,不过"para[0] = 0"容易漏写。
--
FROM 221.220.175.*
你的
--
FROM 111.205.43.*
学习了
【 在 z16166 的大作中提到: 】
: strcpy(para,"")的效果只是para[0] = 0,
: char para[MAX]={0}的效果是para[0]到para[MAX-1]全部为0(记得VC++上是这样,memset后,再执行para[0] = 0。VC可以简写为char para[MAX]={})
: 如果后续的代码依赖于"para全部为0"这个前提,那用strcpy(para,"")这种来初始化就是错误的。
: ...................
--
FROM 116.233.194.*
c++的 char[] char*就是个笑话
【 在 zhongxue 的大作中提到: 】
: 今天看了一段前辈写的留下来的老代码,大量的char数组初始化用了 strcpy(para,"");我一般都用char para[MAX]={0};
: 这两种方法哪种更好更安全呢?
: --
: ...................
--来自微水木3.5.2
--
FROM 180.168.189.*
是当字符串使用,还是当单个字符的数组使用?
如果是前者的话,那么第一种写法没啥问题。
其实吧,直接para[0]=0;更快。
【 在 zhongxue (zhongxue) 的大作中提到: 】
: 今天看了一段前辈写的留下来的老代码,大量的char数组初始化用了 strcpy(para,"");我一般都用char para[MAX]={0};
: 这两种方法哪种更好更安全呢?
--
修改:roy FROM 123.118.14.*
FROM 221.216.49.*
谢谢各位大拿解惑
--
FROM 222.131.243.*
【 在 zhongxue 的大作中提到: 】
: 今天看了一段前辈写的留下来的老代码,大量的char数组初始化用了 strcpy(para,"");我一般都用char para[MAX]={0};
: 这两种方法哪种更好更安全呢?
你的更好。
--
FROM 221.221.51.*