我想將OpenMP並行化添加到工作代碼中(僅適用於單個for
循環),但是我無法擺脫分段錯誤。該問題起因於這一行:OpenMP Segfault
pos += sprintf(com + pos, "%d ", i);
com
是一個字符陣列,我試圖將其定義爲char com[255]
或char *com = malloc(255*sizeof(char))
,內部和for
循環之前。當我在循環之前定義com
時,我添加了private(com)
到#pragma omp parallel for
指令。我也嘗試初始化它,並使用firstprivate
。 (pos
是一個整數,初始化爲0
)
當我不加-fopenmp
一切工作正常,但-fopenmp
它給段錯誤。我錯過了什麼?
更多的代碼在解決你的問題時相當有幫助 – dvhh 2015-03-25 04:57:59
最有可能的是,你也必須使'''pos'''專用 – Ulterior 2015-03-25 04:59:44