7
我不知道爲什麼這個工程:分配一個載體,一個結構矢量場
main.cpp中:
int main(int argc, char * argv[]) {
Pwm_Info tf_info;
tf_info = get_pwm_info(library_data, motif_name);
}
Gen.cpp
struct Pwm_Info {
std::string motif_name;
int width;
std::vector <double> pwm;
Pwm_Info(): motif_name(0),
width(0),
pwm(0) {}
}
TF_info;
Pwm_Info get_pwm_info(std::string library_data, std::string motif_name) {
std::vector <double> double_list;
strtk::parse(pwm_block, " \n\r", double_list);
std::cout << double_list.size() << std::endl;
Pwm_Info TF_info;
TF_info.motif_name = motif_name;
TF_info.width = n_width;
std::vector <double> * pointer;
std::vector <double> * pointer2;
pointer = & TF_info.pwm;
pointer2 = & double_list; * pointer = * pointer2;
std::cout << TF_info.pwm[1] << std::endl;
TF_info.pwm = double_list;
return TF_info;
}
以前,我刪除了指向TF_info和雙列表的指針,並且只有行:
TF_info.pwm = double_list;
...導致SegFault。 創建和分配指針(指針和指針2)到彼此的目的是什麼?
你能提出一個簡單的例子,沒有所有demontsrating問題你library_data,motif_name,Pwm_Info,TF_info等。你能理解閱讀這樣的代碼是不是很困難?! –
您是否保留過印刷線?你提出的修改實際上是完全合法的。 – Paranaix
那麼,如果'std :: cout << TF_info.pwm [1] << std :: endl;'在'TF_info.pwm = double_list;'之前,並且指針部分不在那裏,那當然不會工作('TF_info.pwm'的原始長度:'0'。 – Nabla