-1

私はC(C ++ではない)にchar配列の配列を持っています。タイプはchar**です。長さは知っていますが、要素の長さは不明です。そして私は別のchar*配列を持っています。このchar*を最後の要素として私のchar**に追加する必要があります。

4

3 に答える 3

2

char * arr1 []; //いくつかの要素がすでに入力されている既知の長さ

上記の配列の各要素は、文字配列へのポインタです。

char * new ="lastElem"//これは追加する必要のある文字列です

arr1にはn個の要素(それぞれ文字列)があるとします。それで、

arr1 [++n]=新規; // arr1にスペースが存在し、//文字配列'new'がすでにある場合は、これで問題ありません。

于 2013-01-06T16:39:58.947 に答える
2

どうですか:

char **pointers;
char *p;
/* ... */
pointers[last] = p;

正しく理解する必要があるのは の値でlastあり、 に要素を追加するときに簡単に追跡できますpointers

編集

追跡する簡単な方法lastは、常に次のように言うことです。

pointers[last++] = p;

もう 1 つの方法は、コピーを保持して進めることです。

char **pts = pointers;
/* .. */
pts = p;
pts++;
于 2013-01-06T16:30:56.407 に答える
1

で非常に簡単realloc

char **array = ...;
array = realloc(array, sizeof(char*)*(LENGTH+1));
array[LENGTH] = last;

( のサイズを大きくする必要があると仮定しています。それ以外のarray場合array[LENGTH-1] = lastは十分です)

于 2013-01-06T16:31:41.137 に答える