C,在空格中写入数组

时间:2014-10-10 10:30:46

标签: c linux

我有问题。我正在写一个C代码,但我的问题是这个。

int func(const char* path, httpCallback_t handlerFunc) {
    int i;
    int max = 4;
    for (i = 0; i < max; ++i) {
        UriArray[i];
        func_ptr[i];
    }
    return 0;
}

我会将* path和handlerFunc添加到UriArray []和func_ptr []但是约束是每次将这些值加载到空的空格

此致

1 个答案:

答案 0 :(得分:1)

UriArray[i];

是一个表达式,它“返回”UriArray[i]的当前值,然后将其抛弃。它与声明一样有用(没有副作用):

42;

如果你想在那里存储东西,你需要分配给它,例如:

UriArray[i] = 314159;

假设您没有字符串的后备存储,则可能类似于:

UriArray[i] = strdup (path);
func_ptr[i] = handlerFunc;

但请记住,将数组中的所有四个条目设置为相同的值。这可能不是你想要的。您更有可能想要将单个条目附加到数组中,在这种情况下,您需要保留当前大小的副本,例如:

int size = 0;
#define MAX 4
char *UriArray[MAX];
httpCallback_t func_ptr[MAX];

int func(const char* path, httpCallback_t handlerFunc) {
    if size == MAX) return -1;
    UriArray[size] = strdup (path);
    func_ptr[size++] = handlerFunc;
    return 0;
}