2009-02-22 8 views

答えて

9

reallocと思っていますね。しかし、その現在の長さの

例のAPI私はいつもこのためreallocを使用

struct s_dynamic_array { 
    int allocated; /* keep track of allocated size */ 
    int usedLength; /* keep track of usage   */ 
    int *array;  /* dynamicaly grown with realloc */ 
}; 
typedef struct s_dynamic_array s_dynamic_array; 

s_dynamic_array *new_dynamic_array(int initalSize); 
void    free_dynamic_array(s_dynamic_array *array); 
int    size_of_dynamic_array(s_dynamic_array *array); 
s_dynamic_array *add_int_to_dynamic_array(s_dynamic_array *array, int value); 
int    int_at_index(s_dynamic_array *array, int index); 
+0

ダングを使用することもできます。完全な実装も。ありがとう、epatel。 –

1

を追跡するために、構造にリストをラップするために、より良い、あなたはそれを中心に、独自の配列関数をラップできます。 AFAIK、これには他の組み込みのものはありません。

+0

私は車輪の再発明を避けることを望んでいました。残念だ。私はあなたが話しているラッパーはいつも起こっていると確信しています。 –

+1

おそらくそれのためのいくつかのライブラリがありますが、それらのほとんどはC++用です... – schnaader

+0

:-)申し訳ありません。私はreallocを使用します。早速のご返事ありがとうございます。 –

4

glibには動的配列があります。 (glibcではなく)GArrayとGPtrArrayをチェックしてください。ダイナミック配列は実際にリンクリストと同じではありません。

とにかくthisは、私がglibを学ぶときに見つけた最も有用なリソースです。

関連する問題