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,为什么啊? 展开
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,为什么啊? 展开
4个回答
展开全部
#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");
}
展开全部
#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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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 ?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询