鱼C论坛

 找回密码
 立即注册
查看: 1555|回复: 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
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

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

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

  19. 请输入指令:5
  20. -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
  21. -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
  22. -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
  23. -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586
  24. -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586  -1094795586

  25. 请输入指令:6

  26. 感谢使用本程序^_^

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

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

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

  45. 请输入指令:5
  46. 0  0  0  0  0  0  0  0
  47. 0  0  0  0  0  0  0  0
  48. 0  0  0  0  0  0  0  0
  49. 0  0  0  0  0  0  0  0
  50. 0  0  0  0  0  0  0  0

  51. 请输入指令:6

  52. 感谢使用本程序^_^

  53. $
复制代码

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

  4. int main(void) {
  5.     int *ptr = realloc(NULL, sizeof(*ptr) * 1);
  6.     printf("%d\n", ptr[0]);
  7.     free(ptr);
  8.     return 0;
  9. }
  10. $ gcc -g -Wall -o main main.c
  11. $ ./main
  12. 0
  13. $ gcc-debug -o main main.c
  14. $ ./main
  15. -1094795586
  16. $
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

请问怎么修改,我是在windwos 10,用的是codeblocks.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

你初始化一下不就行了
先选1,然后再选2
小甲鱼最新课程 -> https://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
别人的回答不是很明白,转义规则是什么?麻烦你看一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 02:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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