C语言链表问题 DEVC++编译出error:too many arguments to function 'int deletNode()'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言链表问题 DEVC++编译出error:too many arguments to function 'int deletNode()'相关的知识,希望对你有一定的参考价值。

就是下面这段代码。。关于链表的创建和删除 不知道main()函数的毛病在哪里 希望大家帮助我看一下谢谢拉
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
struct listNode
int data;
struct listNode * nextPtr;
;
typedef struct listNode LISTNODE;
typedef LISTNODE * LISTNODEPTR;
LISTNODE *createList()
int num;
LISTNODEPTR headPtr = NULL,lastPtr = NULL,currentPtr;
printf("Please input a series of integers:");
scanf("%d ",&num);
while(num!=-1)
currentPtr=(LISTNODEPTR)malloc(sizeof(listNode));
if(currentPtr!=NULL)
currentPtr->data = num;
if(headPtr = NULL)
headPtr=currentPtr;
lastPtr=currentPtr;

else
lastPtr->nextPtr=currentPtr;
lastPtr=currentPtr;



scanf("%d ",&num);

lastPtr->nextPtr = NULL;
return headPtr;


void printList(LISTNODEPTR currentPtr)
if(currentPtr=NULL)
printf("the list is empty\n");
else
printf("The list is:");
while(currentPtr!=NULL)
printf("%d ",currentPtr->data);
currentPtr=currentPtr->nextPtr;





int deleteNode(LISTNODEPTR *sPtr,int value)
LISTNODEPTR previousPtr,currentPtr;

previousPtr=NULL;
currentPtr=*sPtr;
while(currentPtr!=NULL&¤tPtr->data!=value)
previousPtr=currentPtr;
currentPtr=currentPtr->nextPtr;

if(currentPtr!=NULL)
if(previousPtr=NULL)
*sPtr=currentPtr->nextPtr;
else
previousPtr->nextPtr=currentPtr->nextPtr;

free(currentPtr);
return value;

else
return -1;

int main()
LISTNODEPTR headPtr,currentPtr,lastPtr,sPtr,nextPtr;
int deleteNode();
LISTNODE *creatList();
void printList();
headPtr=creatList();
printList();
printf("Please input an integer you want to delete:");
int deleNum;
scanf("%d",&deleNum);
deleteNode(headPtr,deleNum);
printList(headPtr);
return 0;

你在main函数内声明了一个int deleteNode();函数,这个表明deleteNode函数是没有参数的。所以你后面的调用才出了问题。其实完全没有必要再声明的呀。 参考技术A deletNode 函数调用的点的传入参数比函数定义的参数多了 参考技术B int deleteNode();
LISTNODE *creatList();
void printList();
这些函数已经被上面定义过了,删了。

Android编译错误——undefined reference to

[错误描述] 未定义引用

提示如下:
bootable/recovery/minzip/Zip.c:1122: error: undefined reference to ‘selabel_lookup‘
bootable/recovery/minzip/Zip.c:1123: error: undefined reference to ‘setfscreatecon‘
bootable/recovery/minzip/Zip.c:1129: error: undefined reference to ‘freecon‘
bootable/recovery/minzip/Zip.c:1130: error: undefined reference to ‘setfscreatecon‘
bootable/recovery/minzip/DirUtil.c:151: error: undefined reference to ‘selabel_lookup‘
bootable/recovery/minzip/DirUtil.c:152: error: undefined reference to ‘setfscreatecon‘
bootable/recovery/minzip/DirUtil.c:158: error: undefined reference to ‘freecon‘
bootable/recovery/minzip/DirUtil.c:159: error: undefined reference to ‘setfscreatecon‘
collect2: error: ld returned 1 exit status
make: *** [out/target/product/fly/obj/SHARED_LIBRARIES/ua-server_intermediates/LINKED/ua-server.so] 错误 1


[问题分析] 根据提示可知,Zip.c 调用的四个函数 ‘selabel_lookup‘,‘setfscreatecon‘,‘freecon‘,‘setfscreatecon‘ 未定义。其实它们定义在 libselinux 库中,只是因为 libselinux 库没有被包含进相应模块的 Android.mk 文件中,才导致这样的编译错误。

 

[处理方法] 打开所编译模块的 Android.mk 文件,在对应模块添加LOCAL_STATIC_LIBRARIES += libselinux,如果已有其他的库,则将 libselinux 直接添加在后面即可。

小小总结,只为抛砖引玉,如果读者在编译过程中遇到类似的问题,可以举一反三,加以解决。

 

#欢迎技术交流# skype账号:fxwlucky

以上是关于C语言链表问题 DEVC++编译出error:too many arguments to function 'int deletNode()'的主要内容,如果未能解决你的问题,请参考以下文章

devc++为啥代码改变编译运行却没变

devc++编译正确点enter输出一直出数字不输出结果怎么办?

为啥devc运行和编译可以但是没分

devc++为啥代码改变编译运行却没变 ?

Linux C语言编译报错:undefined reference to `sem_init‘(编译时加 -lpthread)

Linux C语言编译报错:undefined reference to `sem_init‘(编译时加 -lpthread)