![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
No.1ベストアンサー
- 回答日時:
標準関数にはありません。
作るなら、新たに現在の配列のサイズに要素1つ分のサイズを増やしたメモリ領域を新たに獲得し、そこに既存の配列をコピーしてから一番最後の要素に新しい要素を追加するしかありません。
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
void *array_push(void *ptr, int size, size_t unit_size, void *item) {
void *adr = malloc(unit_size * (size + 1));
memcpy(adr, ptr, unit_size * size);
memcpy((char *)adr + (unit_size * size), item, unit_size);
return(adr);
}
int main(void)
{
char array_one[] = {'0', '1', '2', '3', '4'};
char *array_ptr = array_one;
int array_size = sizeof(array_one) / sizeof(array_one[0]);
char additem = '5';
printf("配列の%d番目の要素は 0x%X ですよ\n",
array_size - 1, array_ptr[array_size - 1]);
array_ptr = (char *)array_push(array_ptr, array_size, sizeof(array_ptr[0]), &additem);
printf("新しい配列の%d番目の要素は 0x%X ですよ\n",
array_size - 1, array_ptr[array_size - 1]);
array_size++;
printf("新しい配列の%d番目の要素は 0x%X ですよ\n",
array_size - 1, array_ptr[array_size - 1]);
free(array_ptr);
getchar();
return(0);
}
No.3
- 回答日時:
Cの配列は固定長なので、「新たな要素を増やす」ことは不可能です。
動的にやりたければmallocとreallocを駆使するしかありません。
なおC++では、これを隠蔽するSTLのvectorテンプレートクラスが存在します。
No.2
- 回答日時:
ありません。
あきらめましょう。C言語の配列はその定義時に要素数(正確には配列が必要とするバイト数)が固定されてしまい、その要素数を後から変更することはできません。
cvSeqPushで末尾に新たな値を追加できるのは、その関数が扱う構造体CvSeqが要素の追加・削除を行える構造になっていて、関数内でいろいろと処理をやっているからです。
# opencvは知りませんでしたが、リファレンス(参考URL)を斜め読みしたところどうやら双方向リストを使用しているようです。
つまり、ただの配列に対して末尾追加を行っているわけではありません。
参考URL:http://opencv.jp/opencv-1.0.0/document/opencvref …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excel 2列の値を返す数式についてです 1 2022/11/23 22:59
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- Excel(エクセル) スプレッドシートの関数 2 2022/11/16 17:36
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
関数から配列を返すには?
C言語・C++・C#
-
C言語のポインターに関する警告
C言語・C++・C#
-
C言語 exitの使い方
C言語・C++・C#
-
-
4
配列の要素数に変数を入れたいときには
C言語・C++・C#
-
5
C言語・要素除去
C言語・C++・C#
-
6
C言語での引数の省略方法
C言語・C++・C#
-
7
C言語 配列の長さの上限
C言語・C++・C#
-
8
バッファとは何ですか
C言語・C++・C#
-
9
C言語初心者の質問失礼します。
C言語・C++・C#
-
10
char型にint型の数値を代入する。
C言語・C++・C#
-
11
16進をASCIIコードに変換する手法
C言語・C++・C#
-
12
構造体のメンバをfor文で回したい
C言語・C++・C#
-
13
積分で1/x^2 はどうなるのでしょうか?
数学
-
14
16進数 加算 減算 C言語
C言語・C++・C#
-
15
C言語 エラーの原因がわからないので,見てほしいです
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
再帰的に処理をする方法
-
連想配列で値が空だったら、要...
-
class内部でarray_mapをつかう...
-
配列の要素(value)に、変数を...
-
STLのvectorで作った配列をメン...
-
C言語でCSVファイルの行数を読...
-
PHP5でCSVの指定行データだけを...
-
phpでのソートについて
-
別ファイルの構造体の値を読み...
-
連想配列のprint_rやvar_dump出...
-
重複しないランダム関数を教え...
-
パンくずリストの作り方
-
■PHPの初歩的なことについて・・・
-
$_SESSIONに二次元配列を使える...
-
繰り返し処理が上手くいかない
-
任意の単語を組み合わせて表示...
-
csvを新ファイルに8番目で大き...
-
条件に寄って、ifの中身が変わ...
-
foreachで配列を、左から縦3列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語の配列をPush(追加)する...
-
行列
-
配列の要素(value)に、変数を...
-
PHPのmin関数、「1」以上の数値...
-
読み(あ行~わ行)ごとに分け...
-
特定の文からメールアドレスの...
-
C言語 最大値と最小値を求めて...
-
STLのvectorで作った配列をメン...
-
多次元配列をエンコードする関...
-
配列の添え字が小数だとどうなる?
-
配列を指定した順序でソート
-
MYSQLとPHPによって取得する多...
-
CArrayの要素としてCStringArra...
-
CArrayのソート
-
array_intersectで空欄を比較し...
-
連想配列から<th>を含むテーブ...
-
多次元配列からxmlツリーを作成...
-
cakephpでのトランザクション処...
-
verilogで、配列の一部をタスク...
-
np.stack()とnp.array()の違い
おすすめ情報