鱼C论坛

 找回密码
 立即注册
查看: 1317|回复: 4

[已解决]C语言动态内存管理

[复制链接]
发表于 2022-1-11 03:04:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼老师的带你学C带你飞第1季第38讲课后作业最后一题https://fishc.com.cn/forum.php?m ... peid%26typeid%3D570
在windwos 10下用codeblocks测试结果如下图:
屏幕截图 2022-01-11 030228.jpg
会输出一个奇怪的数字,请问是什么原因?
最佳答案
2022-1-11 13:31:23
cben 发表于 2022-1-11 13:13
请问怎么修改,我是在windwos 10,用的是codeblocks.

你初始化一下不就行了
先选1,然后再选2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-11 12:24:04 | 显示全部楼层
你没有初始化矩阵中的元素,为什么这些元素的值必须是0 ?
这是我这边的输出
$ gcc-debug -o main main.c
main.c: In function ‘read_matrix’:
main.c:175:13: warning: unused variable ‘num’ [-Wunused-variable]
  175 |         int num, x, y;
      |             ^~~
$ ./main

============================
* 欢迎使用该程序,指令如下 *
* 1.生成一个 M*N 的矩阵    *
* 2.初始化矩阵             *
* 3.给矩阵中某个元素赋值   *
* 4.读取矩阵中某个元素     *
* 5.打印整个矩阵           *
* 6.结束程序               *
============================

请输入指令:1
请输入新矩阵的规模(M*N)-> 5*8
5*8 的矩阵创建成功!

请输入指令:5
-1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
-1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
-1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
-1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
-1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586

请输入指令:6

感谢使用本程序^_^

$ gcc -g -Wall -o main main.c
main.c: In function ‘read_matrix’:
main.c:175:13: warning: unused variable ‘num’ [-Wunused-variable]
  175 |         int num, x, y;
      |             ^~~
$ ./main

============================
* 欢迎使用该程序,指令如下 *
* 1.生成一个 M*N 的矩阵    *
* 2.初始化矩阵             *
* 3.给矩阵中某个元素赋值   *
* 4.读取矩阵中某个元素     *
* 5.打印整个矩阵           *
* 6.结束程序               *
============================

请输入指令:1
请输入新矩阵的规模(M*N)-> 5*8
5*8 的矩阵创建成功!

请输入指令:5
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0

请输入指令:6

感谢使用本程序^_^

$
$ cat main.c
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int *ptr = realloc(NULL, sizeof(*ptr) * 1);
    printf("%d\n", ptr[0]);
    free(ptr);
    return 0;
}
$ gcc -g -Wall -o main main.c
$ ./main
0
$ gcc-debug -o main main.c
$ ./main
-1094795586
$
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-11 13:13:41 | 显示全部楼层
人造人 发表于 2022-1-11 12:24
你没有初始化矩阵中的元素,为什么这些元素的值必须是0 ?
这是我这边的输出

请问怎么修改,我是在windwos 10,用的是codeblocks.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-11 13:31:23 | 显示全部楼层    本楼为最佳答案   
cben 发表于 2022-1-11 13:13
请问怎么修改,我是在windwos 10,用的是codeblocks.

你初始化一下不就行了
先选1,然后再选2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-11 14:00:59 | 显示全部楼层
人造人 发表于 2022-1-11 13:31
你初始化一下不就行了
先选1,然后再选2

谢谢!我还有一个疑问,在这里:https://fishc.com.cn/forum.php?m ... p;page=1#pid5701046
别人的回答不是很明白,转义规则是什么?麻烦你看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 18:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表