C语言 输入几个数再输出这几个数 用指针 并且要使用函数

#includevoidfun(int*p,intn);voidmain(){inta[5];fun(a,5);}voidfun(int*p,intn){int*ptem... #include

void fun(int *p,int n); void main() { int a[5]; fun(a,5); } void fun(int *p,int n) { int *ptemp=p; for(;p<ptemp+5;p++) { scanf("%d",p); } for(;p<ptemp+5;p++) { printf("%4d",*p); } printf("\n"); } 编译没有错误 执行出来总是内存不能writen,为什么啊?
展开
 我来答
百度网友6fe74e2
推荐于2018-04-17 · TA获得超过6592个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:230万
展开全部
#include "stdio.h"
void fun(int *p,int n);
void main()
{
int a[5]; 
fun(a,5); 

void fun(int *p,int n) 

int  *ptemp=p; 
for(;p<ptemp+5;p++) 

scanf("%d",p);
}
//由于执行p++,此时p已经指向数组最后一个元素了,需要还原到第一个位置,不然你读取的位置就不对
//所以报内存地址不能读取的问题
p=ptemp;  //加上这句,让指针重指回数组首地址
for(;p<ptemp+5;p++) 
{
printf("%4d",*p);
}
printf("\n"); 
}

nlk520zh
2013-12-26 · TA获得超过729个赞
知道小有建树答主
回答量:414
采纳率:100%
帮助的人:440万
展开全部
#include<stdio.h>
void fun(int *p,int n);
void main() 

int a[5]; 
fun(a,5);
}
void fun(int *p,int n) 

int  *ptemp=p;
for(;p<ptemp+5;p++)
scanf("%d",p);
for(p=ptemp;p<ptemp+5;p++)
printf("%4d",*p); 
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcl19901011
2013-12-26 · TA获得超过689个赞
知道小有建树答主
回答量:389
采纳率:100%
帮助的人:309万
展开全部
void fun(int *p,int n); 
void main() 
{
 int a[5]; 
 fun(a,5); 


void fun(int *p,int n)
 { 
int  *ptemp=p; 
for(;ptemp<p+5;ptemp++)//修改ptemp就行,这样逻辑也比较清晰
 { 
 scanf("%d",ptemp);
 } 
for(ptemp=p;ptemp<p+5;ptemp++) //ptemp加上初始化

 printf("%4d",*ptemp); 
 } 
printf("\n");
 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-26
展开全部
代码不要写在一行里,太乱了。另外scanf开始的代码是写在那个函数里的? 不是 main 也不是 fun ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式