2013-04-13 78 views
0

我试图初始化一个字符串数组时遇到困难。我正在处理一个具有不同方法的类:一个是为数组充电,另一个是为了消除数组的元素等等......我需要在类中的每个方法中使用相同的数组。在类C构造函数中初始化Dev C中的字符串数组

事情是,我需要模拟数组(队列)并显示它们的元素,因为它们被添加到队列或从队列中删除,并且我尝试初始化数组以显示任何内容而不是随机显示字符。

这里是什么,我试图做的代码...

class Queue 
{ 
    public: 
     char array[3][6]; //array of 3 positions holding up to 6 characters each 
     int front, rear, max; 

     Queue() 
     { 
      front=0; 
      rear=0; 
      max=3; 
      array={"","",""}; //trying to initialize to blank spaces, here's the issue! 
     } 

     void add_element() 
     { } 

     void delete_element() 
     { } 

     void print_on_screen() 
     { } 
    }; 
    main() 
    { } 

我已用一名维字符数组,在进入每一个3个位置的单号工作,但实际需要它与多于一个字符一起工作。

+0

假设C++ 03,http://stackoverflow.com/questions/2409819/c-constructor-initializer-for-arrays?rq=1(和更多在此页上的相关列中找到) – chris

+0

实际上并没有帮助:/我在发布之前阅读了一些建议,但他们初始化了一维数组...我试图初始化一个二维数组 – PAT

+0

事实仍然是,您无法初始化C中的数组数据成员++ 03。你在使用C++ 11吗? – chris

回答

0
char array[3][6] 

是二维阵列字符的。此

array={"","",""}; 

试图初始化的尺寸3的一维阵列的。

´a´"a"是不同的东西。第一个是字符。第二个是字符串。

如果你要初始化字符数组到一些具体的事情,那么你可以这样做,这样

char array[3][3] = {{'a',' ','a'}, {'a','a','a'},{'a','a','a'}}; 
//      ^^^ 
//      blank space 

但是请记住,初始化一个char空格是不一样的初始化一个int 0 0是int的默认值。这就是为什么当构建东西时通常将整数初始化为0的原因。表示他们仍然有默认值。

我想你应该初始化为零。喜欢这个。

 { 
     front=0; 
     rear=0; 
     max=3; 
     array[3][6] = {{0}}; 
    //    ^^^^ 
    } 

最后""不是空白。这一个是" "

+0

感谢您的回答和建议......只是尝试初始化这种方式(零),但它也不工作:/ – PAT

+0

@PAT很高兴帮助:) – 2013-04-13 00:27:39

相关问题