#include <iostream>
#include <cstring>
#include <new>
using namespace std;
//文字列の配列の動的メモリ確保
void func1(int nArray, int nStrLen, //In
char ***szArray) //Out
{
int i;
char **szArray_temp;
try
{
//動的メモリ確保
szArray_temp = new char* [nArray];
for(i = 0; i < nArray; i++)
{
szArray_temp[i] = new char [nStrLen];
}
}
//new演算子の例外処理
catch(bad_alloc xa){
throw "ERROR bad_alloc";
}
//ポインタに渡す。
*szArray = szArray_temp;
return;
}
//
void main()
{
try
{
int Num = 10;
char **szArray;
//文字列の配列の動的メモリ確保
func1(Num, 8, &szArray);
int i;
for(i = 0; i < Num; i++)
{
sprintf(szArray[i], "i = %d", i);
}
for(i = 0; i < Num; i++)
{
printf("szArray[%d] %s\n", i, szArray[i]);
}
delete [] szArray;
}
catch(char *c){
cout << c << endl;
throw c;
}
catch(...){
cout << "Unknown Error" << endl;
}
return;
}
|