C++ 数组和指针-运行时错误
我为我的任务编写了一个程序,涉及指针和数组的动态分配,我遇到了运行时错误,程序崩溃,没有编译错误。节目如下: array.h:C++ 数组和指针-运行时错误,c++,arrays,pointers,dynamic,C++,Arrays,Pointers,Dynamic,我为我的任务编写了一个程序,涉及指针和数组的动态分配,我遇到了运行时错误,程序崩溃,没有编译错误。节目如下: array.h: #include <iostream> using namespace std; void readArray(float*, int &); void PrintArray(float*, int); #include "array.h" void readArray(float* array, int &size) { a
#include <iostream>
using namespace std;
void readArray(float*, int &);
void PrintArray(float*, int);
#include "array.h"
void readArray(float* array, int &size)
{
array = new float[size];
cout << endl;
cout << "Enter the array elements, use spaces: ";
for (int i = 0; i < size; i++)
{
cin >> array[i];
}
cout << endl;
}
void PrintArray(float * array, int size)
{
for (int i = 0; i < size; i++)
{
cout << array[i] << " ";
}
cout << endl;
}
在这里撞车
有人能告诉我PrintArray函数有什么问题吗?Q:有人能告诉我PrintArray函数有什么问题吗 你的PrintArray函数很好 问题是,您从未传递在readArray之外分配的数组 更好:
float *
readArray(int size)
{
float* array = new float[size];
cout << endl;
cout << "Enter the array elements, use spaces: ";
for (int i = 0; i < size; i++)
{
cin >> array[i];
}
cout << endl;
return array;
}
int main()
...
float *array = readArray(size);
...
float*
readArray(整数大小)
{
浮点*数组=新浮点[大小];
cout数组[i];
}
coutQ:有人能告诉我printary函数有什么问题吗
你的PrintArray函数很好
问题是,您从未传递在readArray之外分配的数组
更好:
float *
readArray(int size)
{
float* array = new float[size];
cout << endl;
cout << "Enter the array elements, use spaces: ";
for (int i = 0; i < size; i++)
{
cin >> array[i];
}
cout << endl;
return array;
}
int main()
...
float *array = readArray(size);
...
float*
readArray(整数大小)
{
浮点*数组=新浮点[大小];
cout数组[i];
}
coutreadArray()
的参数array
是通过值传递的,因此main()
中的array
即使在readArray()
中更改,也保持NULL
。使其通过引用进行传递。此外,size
不需要通过引用传递
改变
void readArray(float* array, int &size)
到
readArray()
的参数array
通过值传递,因此main()
中的array
保持NULL
,即使您在readArray()
中对其进行了更改。使其通过引用进行传递。此外,size
不需要通过引用传递
改变
void readArray(float* array, int &size)
到
void readArray(float*& array, int size)