我收到以下警告:
incompatible pointer types 'void**' and 'int* [2]'.
当我尝试编译以下代码时:
#include <stdlib.h>
void func1(void *arr[]) { }
int main() {
int *arr[2];
for (int i = 0; i < 5; i++) {
arr[i] = (int*)malloc(sizeof(int));
*(arr[i]) = 5;
}
func1(arr);
}
Run Code Online (Sandbox Code Playgroud)
现在,当我施放arr时它起作用,我(void**)找不到原因.此外我发现我还需要使用以下代码:
#include <stdlib.h>
void func1(void **arr) { }
int main() {
int **arr;
int i[] = { 1, 2 };
int j[] = { 3, 4 };
*arr = i;
*(arr+1) = j;
func1(arr); //Doesn't compile unless …Run Code Online (Sandbox Code Playgroud)