どのようにベクトルのように動作するcで配列を定義できますか?この配列は、任意の量の値を取る必要があります。 0または10の値または100の値を取ることができます。cでのベクターの複製
以下のコードは動作しますが、スタックが壊れているランタイムエラーが発生します。
int i = 0;
int* aPtr = &i;
int* head = aPtr;
for(i=0;i<6;i++){
(*aPtr)=i;
aPtr++;
}
は同様にどのように私は、文字列を作るために最後にヌル文字が続く文字の任意の量を取るためにchar* str
を使用することができますか?インタビューのための
実践:)あなたのforループで
コードで実行時エラーが発生した場合は動作しません。あなたがしようとしているのは、 'i'の割り当てられたメモリを越えて書き込むことです。これはセグメンテーションフォールトにつながります。 C++ベクタは基本的に動的配列であり、その周囲に細心の注意を払っています。 Cでベクターを複製しようとしている場合は、あなたがやっていることよりもはるかに多くのことがありますが、あなたがどれくらい努力しているのか分かりません。 – birryree
真実なのですが、正しい方法を知りたいのです。 –
もうひとつは、C++の 'std :: vector'は何をしようとしていますか?すべて?基本的なのは、おそらく、ポインタとサイズを定義する 'int'を持つstructを実装し、そのような構造体を取ってそれらを操作する一連の関数を書くことです。ポインタはあなたの動的配列です。動的配列だけが必要な場合は、[C memory allocation](http://en.wikipedia.org/wiki/C_dynamic_memory_allocation)を使用する方法を学んでください。 – birryree