今天在写八皇后时遇到了一些小问题,下面整理一下。
二维数组初始化
用二阶指针来申请:
#include <stdio.h>
#include <malloc.h>
/*
这里只做申请
*/
void makeDoubleArray(int row, int col) {
int **array;
int i, j;
array = (int**)malloc(sizeof(int*) * row);
for(i = 0; i < row; i++) {
array[i] = (int *)malloc(sizeof(int*) * col);
for(j = 0; j < col; j++) {
printf("%p ", &array[i][j]);
if(j == col - 1) {
printf("\n");
}
}
}
for(i = 0; i < row; i++) {
free(array[i]);
}
free(array);
}
void main(void) {
makeDoubleArray(4, 8);
}
用二维数组指针申请
#include <stdio.h>
void makeArray(int row) {
int i;
int j;
int (*array)[8] = (int (*)[8])malloc(sizeof(int) * row * 8);
for(i = 0; i < row; i++) {
for(j = 0; j < 8; j++) {
printf("%d ", array[i]