ページ 1 / 1
動的配列の関数への渡し方
Posted: 2019年7月02日(火) 23:02
by マルコ
C++の質問になってしまいますが。。。
Int main()
{
int count = 0;
int* Array;
cin>> count;
Array = new int[count];
//配列にデータをいれる関数
Hoge(Array, count);
//配列の中身を出力する関数
Hoge2(Array, count);
return 1;
}
これで最後出力する際に配列の中身が出力されないのですが、関数の引数、動的配列の生成等がおかしいのでしょうか?
どなたかわかる方いたらご教授ください。
Re: 動的配列の関数への渡し方
Posted: 2019年7月03日(水) 01:52
by box
main関数だけ見せられましてもね…。
ここはどうしても
Hoge
Hoge2
の中身を見たいところです。
仮に質問者さんが回答しようとする立場で、今回の質問を見たとき、
「おいおい。肝心なところを見せろよ」って思いませんか?
Re: 動的配列の関数への渡し方
Posted: 2019年7月03日(水) 08:29
by Math
>「おいおい。肝心なところを見せろよ」って思いませんか?
思いませんよ。(^^; 質問者様はなんでも質問くださいね。 大歓迎です。
私はWindows10、VS2019Community を使用しております。
下記のようにすれば表示されますよ。(^^;
main.cpp
コード:
#include <iostream>
using namespace std;
int Hoge(int*, int);
int Hoge2(int*, int);
int main()
{
int count;
int* Array;
cout << "input count:";
cin >> count;
cout << count;
Array = new int[count];
//配列にデータをいれる関数
Hoge(Array, count);
//配列の中身を出力する関数
Hoge2(Array, count);
return 0;
}
int Hoge(int* A, int n)
{
for (int i = 0; i < n; i++) {
A[i] = i;
}
cout << "Hoge end!" << endl;
return 0;
}
int Hoge2(int* A, int n)
{
for (int i = 0; i < n; i++) {
cout << A[i] << endl;
}
return 0;
}
VS2019 ビルド
コード:
1>------ すべてのリビルド開始: プロジェクト:Proj_001, 構成: Debug x64 ------
1>main.cpp
1>Proj_001.vcxproj -> C:\19\19c\c++2019\Proj_001\x64\Debug\Proj_001.exe
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========
実行結果
コード:
input count:10
10Hoge end!
0
1
2
3
4
5
6
7
8
9
C:\19\19c\c++2019\Proj_001\x64\Debug\Proj_001.exe (プロセス 1064) は、コード 1 を伴って終了しました。
このウィンドウを閉じるには、任意のキーを押してください . . .
Re: 動的配列の関数への渡し方
Posted: 2019年7月03日(水) 09:21
by Math
#2へ ネガティブ・シンキングになってはいけない。ポジティブ・シンキングに変えようよ・
「為せば成る、為さねば成らぬ何事も、成らぬは人の為さぬなりけり」 米沢藩主の上杉鷹山 の教訓
こんような初心者のかたの質問者様には簡単に答えれるでしょう!質問者様を責めるようないいかたは良くありません。
Re: 動的配列の関数への渡し方
Posted: 2019年7月03日(水) 09:35
by Math
ここを参照してください
https://brain.cc.kogakuin.ac.jp/~kanama ... 11-02.html
今回はプログラム終了じに自動的に配列が解放されますが
プログラムによっては関数 が終了される時に、delete[] により配列が解放されなかったとすると、
ヒープ領域上の配列は、誰にも参照されない (使われない) ままプログラム終了まで残り続けることになってしまう。
このような事態のことをメモリリークと言い、C/C++ のプログラミングでは避けねばならない事態である
という言ことに注意が必要になりますね。
Re: 動的配列の関数への渡し方
Posted: 2019年7月03日(水) 19:25
by マルコ
皆様ありがとうございます!
明日試してみます!