读取内存中字符串的一个小问题

刘铠文 2018-02-10 09:38:45
我现在需要从内存中读取一段字符串,字符串的长度没有给出来,怎样可以无乱码的读取到正确的字符串并赋值?
...全文
1465 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdcire 2018-02-12
  • 打赏
  • 举报
回复
这个不太好弄吧,在不知道长度情况下你不知道字符串编码就不知道它是以\0还是\0\0结束的
cattpon 2018-02-12
  • 打赏
  • 举报
回复
不就是乱码字符串引起的吗?
赵4老师 2018-02-11
  • 打赏
  • 举报
回复
遇到.dll就认为字符串结束?
老马何以识途 2018-02-11
  • 打赏
  • 举报
回复
至少地址范围能知道吧?而且其中不应该存在不允许访问的地址?
真相重于对错 2018-02-10
  • 打赏
  • 举报
回复
c/c艹的字符串以\0表示结尾
CSD_C_CHEN 2018-02-10
  • 打赏
  • 举报
回复
引用 3 楼 u011377435 的回复:
但是乱码位置的字符无法访问,访问就会崩溃
既然无法访问, 可否代表该内存不是运行程序分配的空间, 不是运行程序的使用内存, 为什么要去访问? 如果你非要这么做, 建议你一个字符一个字符读, 读到崩了, 然后抛异常处理, 代表你已经没法往下读了
刘铠文 2018-02-10
  • 打赏
  • 举报
回复
但是DbgPrint可以输出
刘铠文 2018-02-10
  • 打赏
  • 举报
回复
但是乱码位置的字符无法访问,访问就会崩溃
faihung 2018-02-10
  • 打赏
  • 举报
回复
一般是调用strcpy() memcpy()这些函数。 想从无序乱码中读到有效的字符,而你又不知道字符的长度,建议全部读取出来。 用你认为是有效的字符进行条件判断或者比较,然后重新组合。
刘铠文 2018-02-10
  • 打赏
  • 举报
回复

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧