2016-04-07 12 views
-6

だから、HERESに私のループforループのSegフォルト?

string inputName; 
int inputNumServices; 
string inputServices[20]; 
do 
{ 
    cin >> inputName; 
    if(inputName != "$") 
    { 
    cin >> inputNumServices; 
    for(int i = 0; i < inputNumServices; i++) 
    { 
     cin >> inputServices[i]; 
    } 
    cout << "success"; 
    } 
} 

そして、それはのためのループですべての入力に入れてくれワンセグ障害を与えているため。それは私がtest.cc

#include <iostream> 
using namespace std; 
int main() { 
    string inputName; 
    int inputNumServices; 
    string inputServices[20]; 
    // I removed the "do" here, as commented by Nicky C 
    { 
    cin >> inputName; 
    if(inputName != "$") 
    { 
     cin >> inputNumServices; 

     for(int i = 0; i < inputNumServices; i++) 
     { 
     cin >> inputServices[i]; 
     } 
     cout << "success"; 
    } 
    } 

    return 0; 
} 

にこれを入れるとワンセグ障害

+1

'inputServices'をどのように宣言しますか? – songyuanyao

+0

更新しました。ごめんなさい –

+1

"すべての入力"を定義してください。このプログラムを実行するときに入力する数字は何ですか? –

答えて

0

前に「成功」​​をプリントアウトし、私は問題なくtestを実行することができg++ test.cc -o test -Wall -Wextraでコンパイルされませんので、私は知っています。 (私にはケビンによって指摘されているようにendlが表示されています)

20個を超える入力では、segfaults(配列には20個の要素しかないので、既に指摘した通りです)。

関連する問題