Listing. 1: 動的メモリと配列と関数1
theMain.cpp
#include <iostream>
 
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
	int* pArr=nullptr;//ヌルポインタ 何も指さないポインタ
	//ポインタ変数 アドレスを指す変数(アドレスは参照するもの)
	pArr = new int[5]; 
 
	for (int i = 0; i < 5; i++)
		*(pArr + i) = i;
 
 
	//*pArr = 100; //*をつけるとメモリの中身、という意味になる
	for (int i = 0; i < 5; i++) {
		cout << pArr + i << " : " << *(pArr + i) << endl;
		cout << &(pArr[i]) << " : " <<   pArr[i]   << endl;
 	}
			//ポインタ変数名+数字で、何個目のアドレスかを指す
 
	//deleteもじぶんでやる
	//&(pArr[0]) => pArr + 0
 
	//int num;
	//cin >> num;
	//pArr = new int[num];
	//for (int i = 0; i < num; i++)
	//{
	//	pArr[i] = i;
	//}
	//for (int i = 0; i < num; i++)
	//{
	//	cout << pArr[i] << " ";
	//}
	//delete[] pArr;
	return 0;
}
 
//①まず1個ポインタ用意してメモリとって、値を入れて、アドレスと中身を表示
//②入力した数のメモリを取って、値を入れて、アドレスと中身を表示
Listing. 2: 動的メモリと配列と関数2
theMain.cpp
#include <iostream>
 
using std::cout;
using std::endl;
using std::cin;
 
const int ARR_NUM = 20;
 
void InitArr(int* arr, int _num);
void InitA(int* _a);
 
 
int main()
{
	int arr[ARR_NUM] = { 12,7,20,4,9,11,5,19,6,14,16,17,1,13,10,2,15,8,18,3 };
	int a = 10;
 
	//InitArr(arr[]); //arr[0]~arr[9]までを初期化してくれる関数
	//InitArr(arr[ARR_NUM]);
	//InitA(&a);
	//cout << "a=" << a << endl;
	//InitA(&(arr[3]));
	//先頭アドレス(=配列名)と配列数を渡すと関数内で配列をいじれる!
	InitArr(arr, ARR_NUM);
	for (int i = 0; i < ARR_NUM; i++)
		cout << arr[i] << " ";
 
	return 0;
}
 
void InitA(int* _a)
{
	*_a = 0;
	cout << "_a= " << *_a << endl;
}
 
/// <summary>
/// 渡されたintの配列を初期化する関数
/// </summary>
/// <param name="_arr">配列の先頭のアドレス</param>
/// <param name="_num">配列の要素数</param>
void InitArr(int* _arr, int _num)
{
	for (int i = 0; i < _num; i++)
	{
		_arr[i] = i;
	}
}
 
//void sortArr(? ? ? はいれつと、int はいれつすう、bool isIncrease);
//isIncrease == true 昇順
//== false 降順 で 渡された配列をソートする関数をつくれー
void sortArr(int* pArr, int num, bool isIncrease)
{
	for (int i = 0; i < num; i++) {
		int idx = i;
		for (int j = i; j < num; j++)
		{
			if (isIncrease)
			{
				if (pArr[i] > pArr[j])
				{
					idx = j;
					std::swap(pArr[i], pArr[j]);
				}
			}
			else
			{
				if (pArr[i] < pArr[j])
				{
					idx = j;
					std::swap(pArr[i], pArr[j]);
				}
			}
		}
	}
}
  • game-engineer/classes/2023/game-programing-1/first-term/8/08-28-12.txt
  • 最終更新: 2年前
  • by root