当我试图为我的指针数组输入数据时,我得到了一个段错误。我是一个编程新手,所以任何帮助都是很好的。我的任务是创建一个指针数组,然后显示,交换它们,然后对它们排序
#include <iostream>
using namespace std;
float getValueFromPointer(float* thePointer)
{
return *thePointer;
}
float* getMinValue(float* a, float* b)
{
if (*a < *b)
{
return a;
}
else
{
return b;
}
}
int main()
{
int arraySize;
cout << "Enter the array size: ";
cin >> arraySize;
float** speed = new float*[arraySize]; // dynamically allocated array
for(int i = 0; i < arraySize; i++)
{
cout << "Enter a float value: ";
cin >> *speed[i];
}
// Core Requirement 2
for (int i = 0; i < arraySize; i++)
{
float value = getValueFromPointer(*speed+i);
cout << "The value of the element " << i << " is: ";
cout << value << endl;
}
//float *pointerToMin = getMinValue(&speed[0], &speed[arraySize - 1]);
//cout << *pointerToMin << endl;
delete [] speed;
speed = NULL;
return 0;
}
发布于 2018-06-07 07:28:40
您只为外部数组分配了空间,但还需要为每个内部浮点数分配空间。
因此,在调用这条线路之前:
cin >> *speed[i];
您需要先为其分配空间:
speed[i] = new float;
https://stackoverflow.com/questions/50730866
复制相似问题