質問編集履歴
4
試したことその3を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -214,15 +214,93 @@
|
|
214
214
|
|
215
215
|
|
216
216
|
|
217
|
-
|
217
|
+
### 試したことその3(追記)
|
218
|
+
|
218
|
-
|
219
|
+
ポインタをよそのファイルのメンバ関数ではなく、本体で整数型の配列を指すポインタにしてみたところ、やはりhelloは出力しませんでした。
|
220
|
+
|
219
|
-
|
221
|
+
```C++
|
222
|
+
|
220
|
-
|
223
|
+
#include <iostream>
|
224
|
+
|
221
|
-
|
225
|
+
using namespace std;
|
226
|
+
|
227
|
+
|
228
|
+
|
222
|
-
|
229
|
+
int main(){
|
230
|
+
|
231
|
+
|
232
|
+
|
223
|
-
|
233
|
+
cout<<"hello"<<endl;
|
234
|
+
|
235
|
+
|
236
|
+
|
224
|
-
|
237
|
+
int *p;
|
238
|
+
|
239
|
+
p=new int[10];
|
240
|
+
|
241
|
+
delete p;
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
//int *p;
|
246
|
+
|
247
|
+
//p=(int *)malloc(sizeof(int)*10);
|
248
|
+
|
249
|
+
//free(p);
|
250
|
+
|
251
|
+
}
|
252
|
+
|
253
|
+
```
|
254
|
+
|
255
|
+
配列の動的な確保にnewではなくmallocを使ったらhelloは出力されました。
|
256
|
+
|
257
|
+
```C++
|
258
|
+
|
259
|
+
#include <iostream>
|
260
|
+
|
261
|
+
using namespace std;
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
int main(){
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
cout<<"hello"<<endl;
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
//int *p;
|
274
|
+
|
275
|
+
//p=new int[10];
|
276
|
+
|
277
|
+
//delete p;
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
int *p;
|
282
|
+
|
283
|
+
p=(int *)malloc(sizeof(int)*10);
|
284
|
+
|
285
|
+
free(p);
|
286
|
+
|
287
|
+
}
|
288
|
+
|
289
|
+
```
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
225
|
-
### 環境
|
303
|
+
### 環境
|
226
304
|
|
227
305
|
実行環境はvisual studio codeを使っています。他にもMinGWやMSYS2を最近ダウンロードしました。(実行環境とはこういうのを指す言葉でしょうか?いまいち自信がありません)
|
228
306
|
|
3
試したことその2を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -166,6 +166,62 @@
|
|
166
166
|
|
167
167
|
```
|
168
168
|
|
169
|
+
### 試したことその2(追記)
|
170
|
+
|
171
|
+
test.cppという名前をwakaran.cppに変え、makefileのtest部分をすべてwakaranに置換しました。
|
172
|
+
|
173
|
+
> mingw32-make.exe
|
174
|
+
|
175
|
+
g++ -Wall -g wakaran.o initialize.o -o tesuto
|
176
|
+
|
177
|
+
> ./tesuto
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
文章は出てきませんでした。
|
182
|
+
|
183
|
+
その後、
|
184
|
+
|
185
|
+
> mingw32-make.exe clean
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
をしてみたところ、
|
190
|
+
|
191
|
+
>process_begin: CreateProcess(NULL, rm tesuto wakaran.o initialize.o, ...) failed.
|
192
|
+
|
193
|
+
make (e=2): wウスt@CェゥツゥワケB
|
194
|
+
|
195
|
+
makefile:11: recipe for target 'clean' failed
|
196
|
+
|
197
|
+
mingw32-make: *** [clean] Error 2
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
となったので、
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
> rm *o
|
206
|
+
|
207
|
+
> rm *exe
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
して再度実行してみたところ、やはりポインタを使うと文章は出力されませんでした。
|
212
|
+
|
213
|
+
いずれの場合も、ポインタを使わず変数を使うと想定通り文章が出力されました。その時毎回文章を微妙に変えましたがその通りに出力されました。
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
|
169
225
|
### 環境とか
|
170
226
|
|
171
227
|
実行環境はvisual studio codeを使っています。他にもMinGWやMSYS2を最近ダウンロードしました。(実行環境とはこういうのを指す言葉でしょうか?いまいち自信がありません)
|
2
環境や実行手順について追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,6 +26,10 @@
|
|
26
26
|
|
27
27
|
|
28
28
|
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
29
33
|
### 該当のソースコード
|
30
34
|
|
31
35
|
|
@@ -158,4 +162,56 @@
|
|
158
162
|
|
159
163
|
cout << "hello"<<endl;
|
160
164
|
|
165
|
+
|
166
|
+
|
161
|
-
```
|
167
|
+
```
|
168
|
+
|
169
|
+
### 環境とか
|
170
|
+
|
171
|
+
実行環境はvisual studio codeを使っています。他にもMinGWやMSYS2を最近ダウンロードしました。(実行環境とはこういうのを指す言葉でしょうか?いまいち自信がありません)
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
### 実行手順
|
178
|
+
|
179
|
+
makefileを使っています。
|
180
|
+
|
181
|
+
内容はこうです。
|
182
|
+
|
183
|
+
```
|
184
|
+
|
185
|
+
//makefile
|
186
|
+
|
187
|
+
tesuto: test.o initialize.o
|
188
|
+
|
189
|
+
g++ -Wall -g test.o initialize.o -o tesuto
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
test.o: test.cpp initialize.h
|
194
|
+
|
195
|
+
g++ -Wall -g -c -I./ test.cpp -o test.o
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
initialize.o: initialize.cpp initialize.h
|
200
|
+
|
201
|
+
g++ -Wall -g -c -I./ initialize.cpp -o initialize.o
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
clean:
|
206
|
+
|
207
|
+
rm tesuto test.o initialize.o
|
208
|
+
|
209
|
+
```
|
210
|
+
|
211
|
+
> mingw32-make.exe
|
212
|
+
|
213
|
+
./tesuto
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
で実行しています。
|
1
出力結果を忘れていましたので、追記しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ポインタからメンバ関数を呼び出
|
1
|
+
ポインタからメンバ関数を呼び出したい
|
test
CHANGED
@@ -9,6 +9,16 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
本体で宣言したポインタからよそのファイルに定義されたメンバ関数を呼び出したのですが、うまくいきません。
|
12
|
+
|
13
|
+
出力結果は
|
14
|
+
|
15
|
+
hello from initialize
|
16
|
+
|
17
|
+
hello
|
18
|
+
|
19
|
+
が得られるかなと思いましたが、何も出力されませんでした。
|
20
|
+
|
21
|
+
|
12
22
|
|
13
23
|
|
14
24
|
|