配列ポインタの使い方



コード

#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;	
}
			


結果

szArray[0] i = 0
szArray[1] i = 1
szArray[2] i = 2
szArray[3] i = 3
szArray[4] i = 4
szArray[5] i = 5
szArray[6] i = 6
szArray[7] i = 7
szArray[8] i = 8
szArray[9] i = 9
			

 


<戻る>

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル