C++动态内存分配与数组的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/26 02:29:51
我要申请个数组,个数为N.
但N为未知,需要用户临时输入,输入N后,系统自动创建个a[N]的数组,类型为int.
请问怎么弄?我用new,弄了半天还是没弄好....
申请完后要怎么使用?是直接调用(如a[n]=10)么?
int *a = new int[N]
这种不行啊?
我定义后用scanf给它们赋值,赋到第2个时程序就出错了,怎么回事?

给你个写个动态数组的例子把,看看你就知道了
分别通过初始化数组语言,输出数组元素来看

//C++版本
#include <iostream>
using namespace std;
int main()
{
int size,i;
cout<<"请输入数组元素的个数:";
cin>>size;
int *p=new int[size];
//对数组元素初始化
cout<<"请输入 "<<size<<" 个元素!"<<endl;
for(i=0;i<size;i++)
{
cin>>p[i];
}
cout<<endl;
//输出数组元素
for(i=0;i<size;i++)
{
cout<<p[i]<<" ";
}
cout<<endl;
return 0;
}

看你说你用C语言的不行,就在给你个C语言版本的

//C语言版
#include <stdio.h>
int main()
{
int size,i;
printf("请输入数组元素的个数:");
scanf("%d",&size);
int *p=new int[size];
//对数组元素初始化
printf("请输入%d个元素!\n",size);
for(i=0;i<size;i++)
{
scanf("%d",&p[i]);
}
printf("