Error: making pointer from integer in C
Error: making pointer from integer in C
我正在尝试编写一个 c 程序,它将以并行方式检查随机向量是否已排序。
int isSorted(int size, int array[]) {
.........
int *sub_rand_nums = (int *)malloc(sizeof(int) * num_elements_per_proc);
int orden = isSorted(num_elements_per_proc, sub_rand_nums);
// Gather all partial results to all the processes
int *sub_ordens = NULL;
if (my_rank == 0) {
int *sub_ordens = (int *)malloc(sizeof(int) * my_size);
}
if (a == 0) {
int orden = isSorted(sub_ordens, my_size);
}
}
有人可以帮助解决我的代码问题吗?它给了我
的错误
passing argument 1 of ‘isSorted’ makes integer from pointer without a cast [-Wint-conversion]
orden = isSorted(sub_ordens, my_size);
和
passing argument 2 of ‘isSorted’ makes pointer from integer without a cast [-Wint-conversion]
orden = isSorted(sub_ordens, my_size);
您声明了 int isSorted(int size, int array[])
,这表示第一个参数是一个整数。尽管稍后在代码中您指定 int *sub_ordens = NULL;
来指向一个整数,但它本身并不是一个整数。要修复第一个错误,您需要将整数而不是指向整数的指针传递给 isSorted()。
至于第二个错误,你做了与第一个错误相反的事情。 int array[]
就像说 int *array
但你传递的 int my_size;
是一个整数,而不是指向整数的指针。
抛开技术方面的问题,让我们将其视为更具体的东西。你有两个人,我们称他们为 A 和 B。A 拿着一张卡片,上面有一个数字,B 指向 A,但是 B 并不知道卡片上写的数字。如果函数需要一个指针,那么你会寻找 B,但如果它想要数字本身,你会寻找 A。
你的函数要求一个数字(A 人)作为第一个参数,一个指针作为第二个参数(B 人)。
以后如果你的代码在表述上统一一点(spacing/style),并且去掉与题目没有直接关系的部分,会更容易整理。
我正在尝试编写一个 c 程序,它将以并行方式检查随机向量是否已排序。
int isSorted(int size, int array[]) {
.........
int *sub_rand_nums = (int *)malloc(sizeof(int) * num_elements_per_proc);
int orden = isSorted(num_elements_per_proc, sub_rand_nums);
// Gather all partial results to all the processes
int *sub_ordens = NULL;
if (my_rank == 0) {
int *sub_ordens = (int *)malloc(sizeof(int) * my_size);
}
if (a == 0) {
int orden = isSorted(sub_ordens, my_size);
}
}
有人可以帮助解决我的代码问题吗?它给了我
的错误passing argument 1 of ‘isSorted’ makes integer from pointer without a cast [-Wint-conversion]
orden = isSorted(sub_ordens, my_size);
和
passing argument 2 of ‘isSorted’ makes pointer from integer without a cast [-Wint-conversion]
orden = isSorted(sub_ordens, my_size);
您声明了 int isSorted(int size, int array[])
,这表示第一个参数是一个整数。尽管稍后在代码中您指定 int *sub_ordens = NULL;
来指向一个整数,但它本身并不是一个整数。要修复第一个错误,您需要将整数而不是指向整数的指针传递给 isSorted()。
至于第二个错误,你做了与第一个错误相反的事情。 int array[]
就像说 int *array
但你传递的 int my_size;
是一个整数,而不是指向整数的指针。
抛开技术方面的问题,让我们将其视为更具体的东西。你有两个人,我们称他们为 A 和 B。A 拿着一张卡片,上面有一个数字,B 指向 A,但是 B 并不知道卡片上写的数字。如果函数需要一个指针,那么你会寻找 B,但如果它想要数字本身,你会寻找 A。
你的函数要求一个数字(A 人)作为第一个参数,一个指针作为第二个参数(B 人)。
以后如果你的代码在表述上统一一点(spacing/style),并且去掉与题目没有直接关系的部分,会更容易整理。