私はC(C ++ではない)にchar配列の配列を持っています。タイプはchar**です。長さは知っていますが、要素の長さは不明です。そして私は別のchar*配列を持っています。このchar*を最後の要素として私のchar**に追加する必要があります。
質問する
2602 次
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 に答える