C ++で構築されているApacheモジュールでは、モジュールに機能を提供しようとするときに、文字列、ベクトル、および関連するものを使用します。
私の懸念は、Apacheメモリプールを使用しておらず、プログラムが途中でセグメンテーション違反を起こすことですが、同時に、次のような特定のタスクに問題があります。
static void parseSTR(char *input, const char *sep, int &count, apr_table_t *&values, apr_pool_t *mp)
{
char *part, *next;
if (isStrNull(input))
return;
count = 1;
part = apr_strtok(input, sep, &next);
while (part) {
apr_table_set(values, apr_itoa(mp, count), part);
part = apr_strtok(NULL, sep, &next);
count++;
}
}
これは、URLとドメイン名を解析するために区切り文字列パーサーを使用しています。確かに、この機能を提供するためのより効率的な方法があります。私はapr_table構造体を使用して各部分を格納していますが、apr_array_headerを使用できることはわかっていますが...。
だから私は知りたいです:
- Boostを使用して、不足している機能を安全に提供できますか?
- プールメモリを使用していないため、メモリの衝突が発生しますか?
- 自分のメモリを解放する文字列やベクトルなどの場合、これは待機中の問題ですか?
この問題を検索しましたが、他の問題は同じではないようです。