当我编译我的代码时,我得到了gcc的错误。这些错误是关于“传递‘print_path’的参数1使指针从整型变为无类型转换”。
下面是我的函数原型:
void print_path(int previous[], int desired_node_index);下面是我的函数:
void print_path(int previous[], int desired_node_index)
{
if( previous[desired_node_index] != -1 )
print_path( previous[desired_node_index] );
printf("-> %d ", previous[desired_node_index]);
}下面是我调用函数的地方:
print_path(previous, dest_index);很明显我把它传错了,或者我在如何把一个数组传递给一个函数上做了一些错误的事情。有什么帮助吗?
谢谢你们!
发布于 2012-04-06 23:56:46
这显然是一个递归函数。请注意,print_path()有两个参数:第一个参数是int数组,第二个参数是指向该数组中某个位置的索引。
正在调用它:
print_path( previous[desired_node_index] );是绝对错误的(除非你重载了这个函数),因为它需要2个参数,而你只传递了一个。你应该做的是:
print_path( previous, desired_node_index );在这个函数中你似乎遗漏了一个增加/减少index变量的操作,否则你将总是打印数组中的相同位置。
在不知道你到底想做什么的情况下,有可能你想要这样做:
print_path( previous, previous[desired_node_index] );发布于 2012-04-07 01:29:55
一个明显的错误是:
print_path( previousdesired_node_index );
我不知道你想做什么,但我猜你想要这样的东西:
#include <stdio.h>
void print_path(int *previous, int desired_node_index);
int main(void) {
int dest_index = 2;
int previous[5] = { -1, 0, 1, 2, 3};
print_path(previous, dest_index);
return 0;
}
void print_path(int *previous, int desired_node_index) {
if( previous[desired_node_index] != -1 )
print_path( previous, previous[desired_node_index]);
printf("-> %d ", previous[desired_node_index]);
}发布于 2013-07-19 18:09:52
void receive_array(int *temp_arr)
{
int i=0;
do
{
temp_arr[i]=temp_arr[i]+1;
i++;
}
while((char)temp_arr[i]!='\0');
}https://stackoverflow.com/questions/10045830
复制相似问题