推 Schottky: C 程式的陣列和 A 程式不相干啊,不同程式不會共用變數08/09 13:00
→ Schottky: 不過你的敘述不清,實際上錯在哪還是要看原始碼才知道08/09 13:01
補充~
c.h
int data [N];
c.c
#include "c.h"
int get (int i) { return data[i]; }
bool set(int i, int val) {
if(i < 0 || i >= N) return -1;
data[i] = val; return false;
}
a.c
#include "c.h"
bool read_data(char *file_path) {
// read file from file_path to data[i] for i = 0 to N-1 (declare in c.h)
}
main {
read_data ("xxx");
for i = 0 to N-1
// 都是印出 0 ........ ><........
print get(i) << endl;
}
file content like
2, 5, 18, 10, 6, ......
→ tinlans: 先輸出 A 和 C 裡陣列的起始位址看看08/09 14:12
→ firejox: 我覺得是1樓的情況08/09 14:33
※ 編輯: OfficeGL (114.136.29.40 臺灣), 08/09/2019 16:14:08
→ nh60211as: 你在get(int i)裡面先把data[i]印出來看看08/09 21:52
→ annies5: C沒看到寫檔,A要從檔案讀取?08/10 10:28
a已經有寫檔了,而且寫到共用的c.h宣告的變數~
※ 編輯: OfficeGL (114.136.29.40 臺灣), 08/10/2019 11:39:23
→ cole945: 你例子沒貼完整人家怎麼幫你debug.. 最重要的dllexport 08/10 20:23
→ cole945: 怎麼宣告的沒寫..你應該是data沒dllexport變成到用各自的 08/10 20:23