0

構造体配列ポインタにメモリを動的に割り当てる方法。例: サイズが 1024 の構造体配列ポインターがありますが、サイズを大きくする必要がある場合はどうすればよいですか? arr サイズを動的に定義する必要があります。初期化のために、サイズを 1024 に保ちました。あとで、割り当てられた容量よりも多くの容量を増やす必要があります。どうすれば増やすことができますか??

4

2 に答える 2

1

realloc(). 何かのようなもの

struct foo *ptr;
ptr = malloc(sizeof(*ptr) * 1024);

// later
struct foo *tmp = realloc(ptr, sizeof(*ptr) * 2048);
if (tmp) {
    ptr = tmp;
} else {
    // something nasty happened
    free(ptr);
    exit(-1);
}
于 2013-02-02T06:22:52.630 に答える
1

動的メモリ割り当ての場合は、を使用array implemented using linked listsすると役立ちます。関数を使用malloc()して、既存の構造ノードにメモリを割り当てることができます。

構造体オブジェクト内の配列のメモリを増やしたい場合は、構造体内の配列の代わりにリンク リストを使用できます。

于 2013-02-02T06:25:48.537 に答える