開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
我在網路上找到用class寫動態陣列的方法了,不過我還是不知道如何傳到另一個
副程式去做運算 @@"
請會的大大指教一下,謝謝!
(請看下面的程式碼)
假設要做運算的副程式名稱是cal(),內容就是a矩陣+b矩陣
請問該如何宣告、呼叫、還有寫副程式本身呢?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版)
#include <iostream>
using std::cout;
using std::cin;
using std::ios;
using std::cerr;
using std::endl;
#include <stdio.h>
#include <fstream>
using namespace std;
using std::ifstream;
using std::ofstream;
#include <cstdlib>
#include <math.h>
void read_obstacles();
ifstream inobst("obst.txt", ios::in);
//##############################################################################
void* malloc2d( int w, int h, int size )
{
int j;
void **a = (void**) malloc( h*sizeof(void*) + w*h*size );
for( j=0; j<h; j++ )
a[j] = ((char *)(a+h)) + j*w*size;
return a;
}
class Array2D
{
public:
int w, h;
int **m;
Array2D( int width, int height )
{
w = width;
h = height;
m = (int**)malloc2d(w,h,sizeof(int));
}
~Array2D(){free(m);}
};
void main()
{
Array2D a(3, 5);
Array2D b(3, 5);
int i, j;
for( j=0; j<a.h; j++ ){
for( i=0; i<a.w; i++ ){
a.m[j][i] = j*a.w+i;
b.m[j][i] = j*2*b.w+i;
}
}
for( j=0; j<a.h; j++ )
{
for( i=0; i<a.w; i++ )
printf( "%i ", a.m[j][i] );
printf( "\n" );
}
for( j=0; j<b.h; j++ )
{
for( i=0; i<b.w; i++ )
printf( "%i ", b.m[j][i] );
printf( "\n" );
}
system("pause");
}
補充說明(Supplement):