C++の質問になってしまいますが。。。
Int main()
{
int count = 0;
int* Array;
cin>> count;
Array = new int[count];
//配列にデータをいれる関数
Hoge(Array, count);
//配列の中身を出力する関数
Hoge2(Array, count);
return 1;
}
これで最後出力する際に配列の中身が出力されないのですが、関数の引数、動的配列の生成等がおかしいのでしょうか?
どなたかわかる方いたらご教授ください。
動的配列の関数への渡し方
Re: 動的配列の関数への渡し方
main関数だけ見せられましてもね…。
ここはどうしても
Hoge
Hoge2
の中身を見たいところです。
仮に質問者さんが回答しようとする立場で、今回の質問を見たとき、
「おいおい。肝心なところを見せろよ」って思いませんか?
ここはどうしても
Hoge
Hoge2
の中身を見たいところです。
仮に質問者さんが回答しようとする立場で、今回の質問を見たとき、
「おいおい。肝心なところを見せろよ」って思いませんか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 動的配列の関数への渡し方
>「おいおい。肝心なところを見せろよ」って思いませんか?
思いませんよ。(^^; 質問者様はなんでも質問くださいね。 大歓迎です。
私はWindows10、VS2019Community を使用しております。
下記のようにすれば表示されますよ。(^^;
main.cpp
VS2019 ビルド
実行結果
思いませんよ。(^^; 質問者様はなんでも質問くださいね。 大歓迎です。
私は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;
}
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 スキップ ==========
Re: 動的配列の関数への渡し方
#2へ ネガティブ・シンキングになってはいけない。ポジティブ・シンキングに変えようよ・
「為せば成る、為さねば成らぬ何事も、成らぬは人の為さぬなりけり」 米沢藩主の上杉鷹山 の教訓
こんような初心者のかたの質問者様には簡単に答えれるでしょう!質問者様を責めるようないいかたは良くありません。
「為せば成る、為さねば成らぬ何事も、成らぬは人の為さぬなりけり」 米沢藩主の上杉鷹山 の教訓
こんような初心者のかたの質問者様には簡単に答えれるでしょう!質問者様を責めるようないいかたは良くありません。
Re: 動的配列の関数への渡し方
ここを参照してください
https://brain.cc.kogakuin.ac.jp/~kanama ... 11-02.html
今回はプログラム終了じに自動的に配列が解放されますが
プログラムによっては関数 が終了される時に、delete[] により配列が解放されなかったとすると、
ヒープ領域上の配列は、誰にも参照されない (使われない) ままプログラム終了まで残り続けることになってしまう。
このような事態のことをメモリリークと言い、C/C++ のプログラミングでは避けねばならない事態である
という言ことに注意が必要になりますね。
https://brain.cc.kogakuin.ac.jp/~kanama ... 11-02.html
今回はプログラム終了じに自動的に配列が解放されますが
プログラムによっては関数 が終了される時に、delete[] により配列が解放されなかったとすると、
ヒープ領域上の配列は、誰にも参照されない (使われない) ままプログラム終了まで残り続けることになってしまう。
このような事態のことをメモリリークと言い、C/C++ のプログラミングでは避けねばならない事態である
という言ことに注意が必要になりますね。