指针变量中存储的也是一个值, 比如子函数收到传递来的参数值为:3647829, 可以是数值, 也可以是指针地址, 就看你子函数定义成什么类型的参数
目前创新互联已为1000多家的企业提供了网站建设、域名、网络空间、成都网站托管、企业网站设计、双辽网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
intcmp是和GetKeyFunc_t对应起来的。
而你现在错在了CmpFunc_t这个函数参数上了。
你把怎样的函数参数指针传给了BST_t *newBST?
你没交代清楚啊,你把错误指针传给newBST函数的第一个参数,编译器肯定报错了。你给了那么多代码,关键你把什么传给了BST_t *newBST的第一个参数?给一下你调用这个newBST函数的代码,而且要你传给该函数第一个参数的参数定义。
另外给个建议:定义函数时,记得对传进来的参数进行合法性检验。多加几行代码是很有必要的,能增强函数的健壮性。(微软也好,ISO也好,都对大部分函数设计时要求做必要的合法检验)
你的地址值传递错误,按照我给你修改的试试看,一定要注意你的实参传递的是地址还是具体的值,如果是地址,在子函数中就不要去修改你传递进来的地址。
int
main(void)
{
int
data=0;
//此处随机分配内存空间,不要用指针
myStack=makeStack(myStack,top);
Push(myStack,3);
Push(myStack,8);
Push(myStack,19);
Push(myStack,31);
Push(myStack,43);
Push(myStack,36);
Pop(myStack,data);//此处,传递的是地址值
printf("%d
",data);
}
int*
Pop(LinkedStack
myStack,int
*data)
{
pStack
cursor=myStack;
if(Stack_Empty())
{
}
else
{
while(cursor-next!=top)
{
cursor=cursor-next;
}
*data=top-data;
//此处,只是在同一个内存空间修改其值,所以不要取地址
top=cursor;
return
data;
}
}
分享标题:c语言向函数传递指针,c语言函数的指针
分享URL:https://www.cdcxhl.com/article48/dssdohp.html
成都网站建设公司_创新互联,为您提供微信公众号、动态网站、建站公司、品牌网站建设、自适应网站、品牌网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联