首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

数组定义有关问题

2012-02-26 
数组定义问题传说数组在定义的时候得赋初值,对么/但是classStr{public:voidStringCopy(char*strDestinatio

数组定义问题
传说数组在定义的时候得赋初值,对么/
但是
class   Str
{
            public:
                      void   StringCopy(char   *strDestination,   char   *strSource);                        
};

void   Str::StringCopy(char   *strDestination,   char   *strSource)
{
do
*strDestination++=*strSource++;
while(*strSource!= '\0 ');
*strDestination= '\0 ';
}

int   main()
{
        char   str[20];                     //这里就没有赋初值啊,为什么呢?
        Str   s;
        s.StringCopy(str,   "hello   World ");
        cout < <str < <endl;
        return   0;
}

[解决办法]
谁跟你说“数组在定义的时候得赋初值”的?上下文呢?
所有变量在被取值操作前,必须先赋过初值。
在定义的时候同时初始化是一个更好的编程习惯,而不是正确性上的必须要求。
[解决办法]
数组在定义的时候得赋初值, 是为了防止数组在还没被子赋值的情况下被取值!这样就会访问到不应该访问的内存空间,可能出大问题
[解决办法]
只听过数组定义是要先确定数组的大小,没有听过要初始化的

热点排行