2012-01-19 23 views
1

次のプログラムで構造体の初期化に問題があります。初期化の後、私はポインタを使って各strcture要素を取り上げる必要があります。構造体の配列を初期化し、C++のポインタで各要素にアクセスする方法

#include <iostream> 

using namespace std; 

struct student{ 
int rollno; 
float marks; 
char name[45]; 
}*ptr; 

int main(){ 

    //Getting initialization error 
student s1[2]={1,50.23,"abc",2,65.54,"def"}; 

    for(int i=0;i<2;i++){ 

      //Need to cout using pointers 
    cout<<s1[i].rollno<<s1[i].marks<<s1[i].name; 
} 
return 0; 
} 
+0

をし、問題がありますか...? –

+0

ここで動作します:http://ideone.com/1ZFgh – jpalecek

+0

@EdS。質問は、構造体の配列を初期化し、ポインタを介して各構造体要素にアクセスする方法に関するものです。 – sandbox

答えて

2

あなたは{}における配列の全ての要素ラップする必要があります

student s1[2]={{1,50.23,"abc"},{2,65.54,"def"}}; 
+0

これは不要で、スタイルの問題がはるかにあります。 – jpalecek

+0

奇妙な。それは私のためにうまくいく。 (実際には、元のコードも動作しますが、コンパイラは '{}'の警告を出力します) – asaelr

+0

はい...それは動作します!どのようにポインタ* ptr – sandbox

関連する問題