○配列の引数渡し

■1次元

void sub(int i[]){
	for(int j=0;j<10;j++){
		i[j] = j;
	}
}

int main(){
	int i[10];
	sub(i);
	for(int j=0;j<10;j++){
		printf("%d\n",i[j]);
	}
	printf("END\n");
	return 0;
}

▼もしくは

void sub(int*i){
	for(int j=0;j<10;j++){
		i[j] = j;
	}
}

int main(){
	int i[10];
	sub(i);
	for(int j=0;j<10;j++){
		printf("%d\n",i[j]);
	}
	printf("END\n");
	return 0;
}

■2次元

void sub(int i[][10]){
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			i[j][k] = j*10+k;
		}
	}
}

int main(){
	int i[10][10];
	sub(i);
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			printf("%d ",i[j][k]);
		}
		printf("\n");
	}
	printf("END\n");
	return 0;
}

▼もしくは

void sub(int (*i)[10]){
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			i[j][k] = j*10+k;
		}
	}
}

int main(){
	int i[10][10];
	sub(i);
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			printf("%d ",i[j][k]);
		}
		printf("\n");
	}
	printf("END\n");
	return 0;
}

■3次元

void sub(int i[][10][5]){
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			i[j][k][1] = j*10+k;
		}
	}
}

int main(){
	int i[10][10][5];
	sub(i);
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			printf("%d ",i[j][k][1]);
		}
		printf("\n");
	}
	printf("END\n");
	return 0;
}

▼もしくは

void sub(int (*i)[10][5]){
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			i[j][k][1] = j*10+k;
		}
	}
}

int main(){
	int i[10][10][5];
	sub(i);
	for(int j=0;j<10;j++){
		for(int k=0;k<10;k++){
			printf("%d ",i[j][k][1]);
		}
		printf("\n");
	}
	printf("END\n");
	return 0;
}



▲トップページ > Windows と C++