我有个问题。我正在编写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 []中,但是约束是每次将这些值加载到一个空的spac中时
问候
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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句