【发布时间】:2012-07-22 13:38:41
【问题描述】:
在我用 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 安全地提供缺失的功能吗?
- 我会因为没有使用池内存而遇到内存冲突吗?
- 对于释放自己内存的字符串、向量等,这是一个等待的问题吗?
我确实搜索过这个问题,但其他问题似乎不一样。
【问题讨论】:
标签: c++ apache boost apache-modules