TCHAR syspath[100];
memset(syspath,0,100);
GetSystemDirectory(syspath,100);
cout<<syspath;
请问memset这句有必要吗,我主要是担心由于syspath没有被填满,cout时找不到字符数组中为0的结束位。但事实上有没有这句cout都能正常显示,且每次结果有一样,没有因结束位不明确而产生不同。字符数组如不初始化,里面默认存的是什么,如何能标识字符串结束??cout<<int(syspath[x]); 输出的都是-52, -52什么意思
memset(syspath,0,100);
GetSystemDirectory(syspath,100);
cout<<syspath;
请问memset这句有必要吗,我主要是担心由于syspath没有被填满,cout时找不到字符数组中为0的结束位。但事实上有没有这句cout都能正常显示,且每次结果有一样,没有因结束位不明确而产生不同。字符数组如不初始化,里面默认存的是什么,如何能标识字符串结束??cout<<int(syspath[x]); 输出的都是-52, -52什么意思
If the function succeeds, the return value is the length, in TCHARs, of the string copied to the buffer, not including the terminating null character.
这个函数不会拷贝最后一个0, 所以需要初始化一下,或者根据长度自己写最后一个0.
如果确认后续操作相当于strcpy,是不必要memset的
最节省开销的处理:xxx[0]='\0';//只处理第一个字符