|
发表于 2022-5-18 19:28:35
|
显示全部楼层
本帖最后由 风车呼呼呼 于 2022-5-18 19:35 编辑
问题一:p指向所申请的内存空间,p一动(而且最后也不还原)那不是妥妥的内存泄漏
问题二:见代码
- #include <stdio.h>
- int main(void) {
- int** p, n, num = 0;
- printf("请输出矩阵阶数:");
- scanf("%d", &n);
- printf("正在生成%d阶矩阵!\n", n);
- p=(int **)malloc(sizeof(p)*n);
- for (int i = 0; i < n; i++) {
- *(p + i) = (int *)malloc(sizeof(int) * n);
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- *(*(p + i) + j) = num++;
- }
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- printf("%4d", *(*(p + i) + j));
- }
- putchar('\n');
- }
- for (int i = 0; i < n; i++) {
- free(*(p + i));
- }
- free(p);
- return 0;
- }
复制代码 |
|