【发布时间】:2013-05-28 05:57:56
【问题描述】:
我正在尝试解析 envp 数组以获取我的程序的变量名称和值(稍后将使用),但我想我在 realloc 方面还不够好,谁能帮我解决这个问题?
void envset(char *envp[]) {
char *name = NULL;
char *value = NULL;
char *temp = NULL;
char *tok;
int i = 0;
while (envp[i] != 0) {
printf("envp[%d] = %s", envp[i]);
temp = realloc(temp, sizeof(envp[i]));
strcpy(temp, envp[i]);
tok = strtok(temp, "=");
while (tok!=NULL){
name = realloc(name, sizeof(tok));
strcpy(name, tok);
tok = strtok(NULL, "=");
value = realloc(value, sizeof(tok));
strcpy(value, tok);
printf("Name = %s, value = %s", name, value);
}
change_var(name, value);
i++;
}
}
【问题讨论】:
-
tok分配到哪里?realloc(sizeof(tok))没有多大意义,因为value和tok都是char *指针。tok是结构还是?你能把所有的代码都放上来吗? -
tok只是 strtok 的一个标记
标签: c++ c environment-variables realloc strtok