【c语言】动态开辟一个二维数组
// 动态开辟一个二维数组 #include <stdio.h> #include <stdlib.h> int main() { int i = 0; int j = 0; int line = 0; int row = 0; int **p = NULL; printf("输入行数:"); scanf("%d", &line); printf("\n"); printf("输入列数:"); scanf("%d", &row); printf("\n"); // 申请全部行的首指针 p = (int **)malloc(line * sizeof(int *)); if (NULL == p) { return; } for (i = 0; i < line; i++) { //申请列的指针 *(p + i) = (int *)malloc(row *sizeof(int) ); if (*(p + i) == NULL) { return; } } // 初始化数组 for (i = 0; i < line; i++) { for(j = 0; j < row; j++) { p[i][j] = i + 1; } } // 输出 for (i = 0; i < line; i++) { for(j = 0; j < row; j++) { printf("%d ", p[i][j]); } } printf("\n"); // 释放内存 for (i = 0; i < line; i++) { free(*(p + i)); p[i] = NULL; } free(p); p = NULL; return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。