お世話になっております。
配列のサイズを動的に拡張について悩んでおります。例えばint x[5]という配列があって、データが埋まったら動的にx[6]にする・・
っといったものです。自分で試行錯誤した結果、以下のようなプログラムを作成しました。
int *data,count=0,num=10;// グローバル変数
// 配列にデータを加える関数add
void add(int t){
if(count+1>num){ // サイズを超えたら配列をサイズを+1
int i,*tmp_data;
tmp_data = new int [count];
for(i=0;i<num;i++) tmp_data[i] = data[i]; // 一時的に保存
delete[] data; // 古いのを消す
data = new int [num+1]; // 新しく作る
for(i=0;i<num;i++) data[i] = tmp_data[i]; // 新しいのにコピー
num+=1; // 最大値をプラス
data[count]=t;
delete[] tmp_data;
}
else data[count]=t;
count++; // 入力されたカウントをプラス
}
main関数内で、data = new int [10];と宣言し、add(3);のように使用しています。またnewのメモリ確保のエラー処理は省いております。
動くことは動くのですが・・ご覧の通り、グローバル変数が3つになり、データをコピーしたりと、複雑になってしまいました。
もっと簡単に出来るのでは・・っと思い質問させて頂きました。
こうすれば、もっと簡単になるよ!など。。ご回答頂ければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mallocについて
-
へんな現象
-
C#,vb.netで業務用アプリ開発と...
-
インクリメント演算子のみを用...
-
C言語をコンパイルするとコンピ...
-
gccを行ってもexeファイルが生...
-
プログラミングについての質問...
-
double型が正常に認識されてい...
-
C言語の関数と配列に関する質問
-
Linux Cプログラミングを学ぶた...
-
C言語 配列と関数の練習問題
-
Bitcoin、BTCはブロックチェー...
-
Linuxでの開発環境構築や設定の...
-
これなにがちがうんですか??
-
C言語 バッファについて。
-
双方向リスト
-
応用情報技術者試験の令和元年...
-
システムエンジニアの適正について
-
どちのほうがすきですか?
-
Notepad++の関数リスト表示の変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の中に重複文字列があるか...
-
C言語のバイナリモードでのfsca...
-
データの日付でソートをしたい
-
perlで複数行のデータを自由に...
-
perl-cgi 文字の長さでソートし...
-
Visual C++を用いたシリアル通信
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
VBAで巨大なファイルの途中から...
-
Perlで特定行から特定行までを...
-
ReadLineでの読み出し行を指定する
-
エクセルVBAで素数だけを出力す...
おすすめ情報