-1
我尝试将许多值插入队列并删除队列中的第一个值。 但是,当我想要在删除值后打印队列时出现错误。错误:调用的对象不是函数或函数指针
有我的代码:
char queue[100];
int i=-1;
int *delete_queue(int value){
int j;
for(j= 0; j< 10; j++){
queue[j]= queue[j+1];
}
return queue;
}
void insert_queue(int value){
i= i + 1;
queue[i] = value;
}
void print_queue(int *p){
int v;
for(v =0; v < 5; v++){
printf(">> %d \n", *p(v+1));
}
}
int main(int argc, char const *argv[])
{
//int v ;
int *new_queue;
insert_queue(33);
insert_queue(22);
insert_queue(11);
new_queue= delete_queue(33);
print_queue(new_queue);
// for(v =0; v < 5; v++){
// printf(">> %d \n", *new_queue(v+1));
// }
return 0;
}
的错误是:
delete_queue_test.c: In function ‘print_queue’:
delete_queue_test.c:33:23: error: called object ‘p’ is not a function or
function pointer
printf(">> %d \n", *p(v+1));
^
请帮我解决它,谢谢。
我认为你的意思是'p [v]'而不是'* p(v + 1)'。顺便说一句,有一个全局变量叫'我'是一个坏主意。像'queue_count'或'queueIndex'会更好。 – user3386109
谢谢!它可以工作,也可以是*(p + v)。我还有另一个问题,就是'char queue [100];'。我将'char queue [100];'切换到'int queue [100];' – Whatlahuhu