5

配列のサイズを動的に増加させようとしています。配列の末尾に追加のスペースを追加したり削除したりする標準の C または C++ 関数はありますか? ヒープの最後に十分なスペースがあることを保証できないため、これは難しいことです。しかし、これはオペレーティング システムの仕事ではないでしょうか。

4

4 に答える 4

0

教授やエンジニア (数年にわたって実際の仕事をしている) のような人々による多くの実験の後、配列を拡張するときは、違いを示す内部情報がない限り、50% 拡張します。realloc() は、面倒作業もすべて行います (次に説明します)。インターネットから:-->realloc() 関数は、ptr が指すメモリー・ブロックのサイズを size バイトに変更します。コンテンツは、領域の開始から古いサイズと新しいサイズの最小値までの範囲で変更されません。新しいサイズが古いサイズより大きい場合、追加されたメモリは初期化されません。ptr が NULL の場合、size のすべての値について、呼び出しは malloc(size) と同等です。size がゼロに等しく、ptr が NULL でない場合、呼び出しは free(ptr) と同等です。ptr が NULL でない限り、malloc()、calloc()、または realloc() への以前の呼び出しによって返されたに違いありません。指している領域が移動された場合、free(ptr) が実行されます。

于 2014-10-15T08:47:22.537 に答える