我无法理解交换功能中的问题:
void swap(char ***words, int w1, int w2){
char *temp = malloc(sizeof(char*) * MAXWORD);
temp = (*words)[w1];
(*words)[w1] = (*words)[w2]
(*words)[w2] = temp;
free(temp);
}
它说
error: called object type 'char *' is not a function or
function pointer
(*words)[w2] = temp;
^
我为我的chars数组创建了临时指针..然后我在2D指针数组中指定了这个指针而不是另一个指针。这可能有什么不对?谢谢
答案 0 :(得分:2)
你忘记了分号,所以这个:
(*words)[w1] = (*words)[w2]
(*words)[w2] = temp;
被解析为:
(*words)[w1] = (*words)[w2](*words)[w2] = temp;
答案 1 :(得分:1)
您忘了在这两个陈述之间加上分号
(*words)[w1] = (*words)[w2] // <== absence of a semicolon
(*words)[w2] = temp;
但是在任何情况下你的代码都没有意义,因为你首先分配存储在指针temp
中的地址,然后重新分配指针。
char *temp = malloc(sizeof(char*) * MAXWORD);
temp = (*words)[w1];
因此存在内存泄漏。