#15080: 請問大家 RE (SIGSEGV) 的問題


bsw0210903@gmail.com (Pe↗ko↘Pe↗ko↘Pe↗ko↘)

學校 : 銘傳大學
編號 : 81599
來源 : [101.137.215.124]
最後登入時間 :
2021-12-03 15:05:51
c381. 聖經密碼 -- 板橋高中教學題 | From: [114.40.32.132] | 發表日期 : 2018-09-09 20:36

 

#include <iostream>
#include <string>
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b){
    if(a==0&&b==0)
    return 0;

    else{
    string sent;
        while(a--){   
        string tmp;
        cin>>tmp;
        sent+=tmp;
        }
            char *ans=new char(b);
                for(int i=0;i<b;i++){
                int num;
                cin>>num;
                ans[i]=sent[num-1];
                }
                        for(int i=0;i<b;i++)
                        cout<<ans[i];


                        cout<<endl;
                        delete ans;

    }

  }

}

 

我在dev c++是執行成功的

我在想是不是動態陣列那邊出錯了

想問大家有沒有什麼建議><

 
#15844: Re:請問大家 RE (SIGSEGV) 的問題


tang891228 (tang891228)

學校 : 國立成功大學
編號 : 61119
來源 : [140.116.1.138]
最後登入時間 :
2018-09-24 00:20:31
c381. 聖經密碼 -- 板橋高中教學題 | From: [61.227.252.133] | 發表日期 : 2018-11-03 20:11

我在dev c++是執行成功的

我在想是不是動態陣列那邊出錯了

想問大家有沒有什麼建議><

動態陣列要用中括號:char *ans = new char[b];

delete 後面也要加中括號:delete[] ans;

 
ZeroJudge Forum