我正在寫一個簡單的頭文件,它可以製作一個動態二維數組,並在行和列中放入0,打印數組並刪除數組。簡單的二維數組頭文件,打印失敗
在Debug中,當逐步完成時,2d數組被初始化,它將0放在那裏,但是當my_array.Print_Array();稱爲,編譯器跳過它。
當我嘗試從主文件打印數組失敗。任何幫助將不勝感激。
頭文件:
class twoD_Array
{
public:
int **Array;
int *col, *row;
int size_col, size_row;
twoD_Array(int, int);
~twoD_Array();
void Print_Array();
};
twoD_Array::twoD_Array(int size_c, int size_r)
{
size_col = size_c;
size_row = size_r;
Array = new int *[size_col];
for (int i = 0; i < size_col; i++)
{
Array[i] = new int[size_row];
for (int j = 0; j < size_row; j++)
Array[i][j] = 0;
}
}
void twoD_Array::Print_Array()
{
for (int y_i = 0; y_i<size_col; y_i++)
{
for (int x_i = 0; x_i<size_col; x_i++)
std::cout << Array[y_i][x_i];
std::cout << std::endl;
}
}
twoD_Array::~twoD_Array()
{
for (int i = 0; i < size_row; i++)
delete[] Array[i];
delete[] Array;
}
主文件:
#include "stdafx.h"
#include <iostream>
#include "2D_Array.h"
int main()
{
int x, y;
std::cout << "how many x variables?" << std::endl;
std::cin >> x;
std::cout << "how many y variables?" << std::endl;
std::cin >> y;
twoD_Array my_array(x, y);
my_array.Print_Array();
return 0;
}
任何不使用'std :: vector'來管理底層數組的原因? –
WhiZTiM
你運行一個嵌套for循環,直到size_col代替size_row – pergy
'當我嘗試從主文件打印數組失敗時'你能定義_it失敗_嗎? – Yousaf