首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >指针数组的分段错误

指针数组的分段错误
EN

Stack Overflow用户
提问于 2018-06-07 07:10:33
回答 1查看 718关注 0票数 0

当我试图为我的指针数组输入数据时,我得到了一个段错误。我是一个编程新手,所以任何帮助都是很好的。我的任务是创建一个指针数组,然后显示,交换它们,然后对它们排序

代码语言:javascript
复制
#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;
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-07 07:28:40

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

因此,在调用这条线路之前:

代码语言:javascript
复制
cin >> *speed[i];

您需要先为其分配空间:

代码语言:javascript
复制
speed[i] = new float;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50730866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档