最初のコード ブロックは機能しますが、2 番目のコード ブロックは機能しません。その理由はわかりません。2 番目のコード ブロックでセグメンテーション エラーが発生します。
#include "Graph.h"
#include "Simple_window.h"
#include "std_lib_facilities_3.h"
using namespace Graph_lib;
Point t1(100,100);
Simple_window win(t1,700,700,"Calendar");
int main(){
Vector_ref<Text> weekdays;
vector<string> weekday = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
for (int a = 0; a < weekday.size(); ++a){
weekdays.push_back(new Text(Point(a*100+28,90), weekday[a]));
weekdays[weekdays.size()-1].set_font_size(10);
win.attach(weekdays[weekdays.size()-1]);
}
}
次のコードでは、セグメンテーション違反が発生します。
#include "Graph.h"
#include "Simple_window.h"
#include "std_lib_facilities_3.h"
using namespace Graph_lib;
Point t1(100,100);
Simple_window win(t1,700,700,"Calendar");
void draw_weekdays(){
Vector_ref<Text> weekdays;
vector<string> weekday = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
for (int a = 0; a < weekday.size(); ++a){
weekdays.push_back(new Text(Point(a*100 + 28, 90), weekday[a]));
weekdays[weekdays.size()-1].set_font_size(10);
win.attach(weekdays[weekdays.size()-1]);
}
}
int main(){
draw_weekdays();
}
問題を「win.attach(weekdays[weekdays.size()-1]);」という行に絞り込みましたが、それ以外は困惑しています。