c ++中的动态数组

时间:2015-11-22 20:06:49

标签: c++ arrays pointers multidimensional-array

我需要在其中实现5x5动态数组 其中的每个元素都等于其两个索引的总和。例如,第一个元素at(0,0)的值为0 + 0 = 0.

这是我的代码:

# include<iostream>
using namespace std;
int main()
{
    int size =5;
    int *array=new int[size];
    for (int i = 0; i < size; i++)



    delete [] array;

  return 0;

}

我需要帮助来实现索引的总和。

2 个答案:

答案 0 :(得分:1)

首先需要实现一个二维数组。:)

你在这里。

#include <iostream>

int main()
{
    const size_t N = 5;

    int ( *array )[N] = new int[N][N];

    for ( size_t i = 0; i < N; i++ )
    {
        for ( size_t j = 0; j < N; j++ ) array[i][j] = i + j;
    }

    for ( size_t i = 0; i < N; i++ )
    {
        for ( size_t j = 0; j < N; j++ ) std::cout << array[i][j] << ' ';
        std::cout << std::endl;
    }

    delete [] array;

    return 0;
}

并且不要注意答案被拒绝投票。答案没有错。 :)

答案 1 :(得分:0)

首先,您应该创建一个二维数组,而不仅仅是一个数组。

void foo() {
  int **a = new int*[5];
    for (int i = 0; i < 5; i++)
        a[i] = new int[5];
  }
  for (int i = 0; i < 5; i++)
     for (int j = 0; j < 5; j++)
        a[i][j] = i + j;
  for (int i = 0; i < 5; i++) {
      for (int j = 0; j < 5; j++)
           cout << a[i][j] << " ";
      cout << endl;
  }
  for (int i = 0; i < 5; i++)
     delete[] a[i];
  delete[] a;
}

当然,不要忘记清除记忆)