我输入5后为什么显示结果不是:0 1 2 3 4???

来源:百度知道 编辑:UC知道 时间:2024/06/03 00:44:16
输出结果是:
5
-33606819,-33606819,-33606819,-33606819,-33606819
Press any key to continue

程序:
#include <iostream>
#include <malloc.h>

using namespace std;
main()
{
int arraysize; //元素个数
int *array; //用于动态开辟数组的指针变量

cin>>arraysize;
array=(int*)malloc(arraysize*sizeof(int));//利用malloc在堆内存中开辟内存空间,它的大小是元素的个数乘以该数据类型的长度

for(int i=0;i<arraysize;i++)
{
array[i]=i;
}

for(int j=0;j<arraysize;j++)
{
cout<<array[i]<<",";
}
cout<<endl;
free(array);//利用free释放动态开辟的堆内存空间
// cin.get();
//cin.get();
}

hei,man在这段代码中,你本来是想用j作为循环变量的,结果cout的时候却写成了i:
for(int j=0;j<arraysize;j ){cout<<array[i]<<",";}

for(int j=0;j<arraysize;j++)
{
cout<<array[j]<<",";//注意这里是j不是i
}

#include <iostream>
#include <malloc.h>
using namespace std;

main()
{
int arraysize; //元素个数
int *array; //用于动态开辟数组的指针变量

cin>>arraysize;

array = (int*)malloc(arraysize*sizeof(int));//利用malloc在堆内存中开辟内存空间,它的大小是元素的个数乘以该数据类型的长度

for(int i=0; i < arraysize; i++)
{
array[i]=i;
}

for(int j=0; j<arraysize; j++)
{
cout << *array + j << ",";
}
cout<<endl;
free(array);//利用free释放动态开辟的堆内存空间
// cin.get();
//cin.get();
return 0;
}
你错把j写成i了,正确的我已经改好了