我有一些代碼提示用戶閱讀具有以下格式的文件:[name] [someInt],但並非所有行都具有[name]。因此,我將每行解析爲一個字符串數組,如果它的長度爲2,則它有一個名稱並執行一個strcmp來查找匹配,然後打印出相關的int。但是,我遇到了一些問題,在這裏我得到試圖設置和打印指針的值
error: invalid operands to binary * (have ‘char *’ and ‘char *’)
在printf("%s\n" *ans);
線
char * ans = NULL;
//open and read file line by line, below code is in line by line while loop
char ** res = NULL;
char * p = strtok (line, " ");
int n_spaces = 0, i;
while (p) {
res = realloc (res, sizeof (char*) * ++n_spaces);
if (res == NULL) {
exit (-1); /* memory allocation failed */
}
res[n_spaces-1] = p;
p = strtok (NULL, " ");
printf("%d\n", n_spaces);
if(n_spaces == 2 && (strcmp(name,res[0]) == 0)) {
nameMatch = true;
printf("MATCH FOUND!\n");
ans = res[1];
printf("%s\n" *ans);
break;
}
}
'realloc(NULL,size)'完全沒問題。它被定義爲等同於'malloc(size)'。 – duskwuff 2014-10-06 22:39:09