我不能真正理解我的交换函数中的问题:
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;
^
我为我的字符数组创建了临时指针..然后我赋值这个指针,而不是2D指针数组中的另一个指针。这里会有什么问题呢?谢谢
发布于 2014-07-19 22:07:17
您忘记了一个分号,所以这是:
(*words)[w1] = (*words)[w2]
(*words)[w2] = temp;
解析为:
(*words)[w1] = (*words)[w2](*words)[w2] = temp;
发布于 2014-07-19 22:16:55
您忘了在这两个语句之间加一个分号
(*words)[w1] = (*words)[w2] // <== absence of a semicolon
(*words)[w2] = temp;
然而,在任何情况下,您的代码都没有意义,因为您首先分配内存,其地址存储在指针temp
中,然后重新分配指针。
char *temp = malloc(sizeof(char*) * MAXWORD);
temp = (*words)[w1];
所以有一个内存泄漏。
https://stackoverflow.com/questions/24841207
复制相似问题