|
[BR]从turbo c中移植一段程序到vc++6.0,原有程序中定义了一个字符指针数组unsigned char *Str[]={"aaaa", "bbbbb","ccc","dddddd"},我将Str作为某个类A的成员变量,在该类的构造函数中对其作初始化, 程序如下: 在*.h中 class A { private: unsigned char *Str[]; ....... } 在*.cpp中 A::A { strcpy(Str[0], "aaaa"); strcpy(Str[1], "bbbbb"); strcpy(Str[2], "ccc"); strcpy(Str[3], "dddddd"); } 出现一个警告和一个错误: warning C4200: nonstandard extension used : zero-sized array in struct/union error C2664: 'strcpy' : cannot convert parameter 1 from 'unsigned char *' to 'char *' 这是什么原因,怎么修改? 如果*.cpp改成: A::A { *Str[]={"aaaa", "bbbbb","ccc","dddddd"}; } 则出现一个警告和三个错误: warning C4200: nonstandard extension used : zero-sized array in struct/union syntax error : ']' syntax error : missing ';' before '{' error C2143: syntax error : missing ';' before '}' 这又怎么改?能说明原因吗? 在类中怎么声明字符指针数组,在那里初始化数组? |
|