我有问题。我正在写一个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 []但是约束是每次将这些值加载到空的空格
此致
答案 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;
}