-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