请教 c 语言把 malloc 申请的内存块写入各种数据后存进文件,但是从文件中读出来时发现数据的位置有变动。即无法读取正确的数据

2015-12-13 16:42:22 +08:00
 bobobe
我是用 fwrite 和 fread 写入和读二进制文件的,写的时候是传进去内存首地址
1744 次点击
所在节点    C
23 条回复
znoodl
2015-12-13 16:45:46 +08:00
又一个耍流氓的……
msg7086
2015-12-13 16:49:05 +08:00
是你代码写错了。
比如这里你就写得不对,应该这样写才行。
lincanbin
2015-12-13 17:00:11 +08:00
2 楼说得没错,但是 2 楼给出的解决方案我觉得可能不太合适,应该这么写才比较优雅。
allan888
2015-12-13 17:07:00 +08:00
3 楼拼错了一个变量名没法编译,帮你改了,现在可以了,不谢。
shuax
2015-12-13 17:13:56 +08:00
4 楼明明写的是 java 代码,欺负我们看不懂啊?
ryd994
2015-12-13 18:25:07 +08:00
其实用 mmap 更方便。改成这样就好了
bdbai
2015-12-13 19:24:19 +08:00
别人有封装好的轮子,没这么麻烦,快试试吧。地址
Cloudee
2015-12-13 19:36:49 +08:00
你 fwrite 的时候参数错啦,第个参数不应该是,应该是
sean10
2015-12-13 20:58:14 +08:00
楼主还是好好看下怎么提问吧,别说你的推测,拿代码来说话
sean10
2015-12-13 21:04:39 +08:00
上面后一句好像语气有点歪了,不好意思……顺便推荐一本《提问的智慧》
mikicomo
2015-12-13 22:08:25 +08:00
5 楼你到底懂不懂呀,我看 4 楼下的 python 好不好
@shuax
iamfredng
2015-12-13 23:51:56 +08:00
12345 楼的都不对,我这样写才对。
hei1000
2015-12-14 00:06:54 +08:00
看到上面的回复后,楼主的内心一定是崩溃的
Viztor
2015-12-14 00:11:54 +08:00
@hei1000 应该只是在提示楼主把代码 po 上来吧。
hei1000
2015-12-14 00:15:25 +08:00
@Viztor 一个也就算了,码楼码的那么整齐就是聚众调戏了 :)
sleeperqp
2015-12-14 00:16:14 +08:00
请看 序列化与反序列化
Viztor
2015-12-14 00:18:11 +08:00
@hei1000 多好玩 (・ω・)ノ
hei1000
2015-12-14 00:19:47 +08:00
@Viztor 是蛮好玩的,所以说楼主看到回复内心一定是崩溃的
dogfeet
2015-12-14 09:19:45 +08:00
写入的数据中有指针吗?
zhicheng
2015-12-14 09:47:28 +08:00
我来告诉大家一个惊天大秘密, malloc 返回的内存地址,每次都不一样!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/243225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX