24小时热门版块排行榜    

查看: 1048  |  回复: 8
本帖产生 1 个 博学EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

简单疯狂

金虫 (小有名气)

[求助] C++数组问题不知出在哪?

#include<iostream>
using namespace std;
void create(int *,int);
int main()
{
        int*a=NULL;
        int len;
        cin>>len;
        create(a,len);
        for(int i=0;i<len;i++)
                cout<<a<<"  ";
        cout<<endl;
        delete []a;
        a=NULL;
        return 0;
}
void create(int *ap,int n)
{
       
        ap=new int[n];
        for(int i=0;i<n;i++) ap=i;
}
麻烦大神看看什么漏了或错了,谢谢!
经验告诉我,求人不如求己
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (文坛精英)

★ ★ ★
简单疯狂: 金币+3 2013-12-10 12:39:52
本帖仅楼主可见
3楼2013-12-10 08:11:08
已阅   申请博学EPI   回复此楼   编辑   查看我的主页
查看全部 9 个回答

匿名

用户注销 (文坛精英)

★ ★ ★ ★ ★
简单疯狂: 金币+3, 博学EPI+1, 有帮助 2013-12-10 12:24:41
简单疯狂: 金币+2 2013-12-10 12:40:02
本帖仅楼主可见
2楼2013-12-10 08:09:27
已阅   回复此楼   编辑   查看我的主页

purplerose8236

木虫 (职业作家)

【答案】应助回帖

★ ★
简单疯狂: 金币+1 2013-12-10 12:26:18
简单疯狂: 金币+1, 有帮助 2013-12-10 12:40:17
for(int i=0;i<n;i++) ap=i;
你这个只是给第一个地址里赋值了,而指针没有移动,后面的空间里都没有赋值呀
临事而惧,好谋而成!
4楼2013-12-10 09:10:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

简单疯狂

金虫 (小有名气)

引用回帖:
2楼: Originally posted by 硫酸亚铜 at 2013-12-10 08:09:27
你编译出了什么错误?你想得到什么结果呢?麻烦说清楚一点。感觉是你传参数有问题,你应该在函数内释放空间,否则可能导致内存泄露,你在main函数内的a和函数中的ap不是同一个指针,ap应该是a在函数内的拷贝,你是用 ...

主要是这代码运行时会弹出框框说这程序停止运行了,好像是数组一开始没分配空间啊!
经验告诉我,求人不如求己
5楼2013-12-10 12:13:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见