gpt4 book ai didi

c++ - 指针数组的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:58:26 24 4
gpt4 key购买 nike

尝试为我的指针数组输入数据时出现段错误。我对编码很陌生,所以任何帮助都会很棒。我的任务是制作一个指针数组然后显示、交换它们然后对它们进行排序

#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;
}

最佳答案

您只为外部数组分配了空间,但您还需要为每个内部 float 分配空间。

所以在调用这一行之前:

cin >> *speed[i];

首先需要为其分配空间:

speed[i] = new float;

关于c++ - 指针数组的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50730866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com