由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 地址空间里的一个BYTE不能写入(是合法地址)
相关主题
一个很诡异的ifstream问题,求助~~size不固定的struct怎么定义呀?
调用win32 DLL的问题请教函数 INIT 怎么能free memory
python question, easy one初学C,对什么该free一直搞不明白
[合集] 快速填充memory的方法?大家新年好。 请教一个 c interview question
[合集] ofstream 无法使用binary mode的问题c ptr question
跪求大牛一个问题定义 单链表 数组,会不会很奇怪
Windows下多个DLL之间memory allocation问题这段C++程序有错吗?
copy_from_user() 是怎么知道缓存长度的? (转载)请教如何初始化这个C data structure Steque的object?
相关话题的讨论汇总
话题: int话题: byte话题: setting话题: mysetting话题: memset
进入Programming版参与讨论
1 (共1页)
n*********i
发帖数: 567
1
最近碰到的这个问题太奇怪了,以前从没碰到过。C语言XP平台,好像就是地址空间里
,有一个BYTE没法写入,怎么写它的值都不变。只在我的一个APP里有这种情况,就是
在MAIN函数里定义了一个STRUCT,不管用MEMSET还是直接赋值,那个位置的值始终是
0x0a,直接去内存地址里看也是一样,请问有人碰到过这种情况吗?
t****t
发帖数: 6806
2
肯定你的程序有问题

【在 n*********i 的大作中提到】
: 最近碰到的这个问题太奇怪了,以前从没碰到过。C语言XP平台,好像就是地址空间里
: ,有一个BYTE没法写入,怎么写它的值都不变。只在我的一个APP里有这种情况,就是
: 在MAIN函数里定义了一个STRUCT,不管用MEMSET还是直接赋值,那个位置的值始终是
: 0x0a,直接去内存地址里看也是一样,请问有人碰到过这种情况吗?

n*********i
发帖数: 567
3
我估计可能是程序有问题,不过一点思路都没有,没碰到过这种奇怪的情况。我用
DEBUG进去看汇编指令,比如mov [edi],eax这句话以后,那个地址的值还没变,真是邪
门了。

【在 t****t 的大作中提到】
: 肯定你的程序有问题
E*V
发帖数: 17544
4
贴程序吧

【在 n*********i 的大作中提到】
: 我估计可能是程序有问题,不过一点思路都没有,没碰到过这种奇怪的情况。我用
: DEBUG进去看汇编指令,比如mov [edi],eax这句话以后,那个地址的值还没变,真是邪
: 门了。

n*********i
发帖数: 567
5
大致贴一下哈
int main(int argc, char* argv[])
{
HINSTANCE m_DLL;
FP_Open m_Open;
...... // 声明一些函数指针
unsigned int colorspace = 0;
int MemoryLeakTest = 0;
int CrashTest = 0;
bool bDecodeOnly = FALSE;
unsigned char* szRecBuffer = NULL;

Setting mysetting; // 我说的有问题的struct
memset(&mysetting, 0, sizeof(Setting));
//这里就不行了,比如mysetting.a的memset完以后还是0x0a。如果我写mysetting
.a = 2,值还是不变。
.... // 下面是LOAD一个DLL,LOAD FUN
n*********i
发帖数: 567
6
补充:用的VS2005,没打SP1
c*****t
发帖数: 1879
7
post Setting's declaration.

【在 n*********i 的大作中提到】
: 大致贴一下哈
: int main(int argc, char* argv[])
: {
: HINSTANCE m_DLL;
: FP_Open m_Open;
: ...... // 声明一些函数指针
: unsigned int colorspace = 0;
: int MemoryLeakTest = 0;
: int CrashTest = 0;
: bool bDecodeOnly = FALSE;

n*********i
发帖数: 567
8
这个不能POST。。。不过可以说一下,
大小是3120BYTE,里面都是INT,FLOAT,INT*等32位的变量,还有一些RESERVE的CHAR
型,不过都是4BYTE ALIGN的。刚才说错了,不能改的那个地方所对应的变量是INT型的
。不能赋值的在STRUCT里1K多左右BYTE的地方。

【在 c*****t 的大作中提到】
: post Setting's declaration.
n*********i
发帖数: 567
9
再补充一下,如果我用MALLOC的方式分配内存给那个STRUCT,把那个点的内存绕过去不
用,程序就完全没有问题。
1 (共1页)
进入Programming版参与讨论
相关主题
请教如何初始化这个C data structure Steque的object?[合集] ofstream 无法使用binary mode的问题
C语言的变量都一定要放在stack上吗?跪求大牛一个问题
一个简单的问题Windows下多个DLL之间memory allocation问题
问个 C++到C的问题copy_from_user() 是怎么知道缓存长度的? (转载)
一个很诡异的ifstream问题,求助~~size不固定的struct怎么定义呀?
调用win32 DLL的问题请教函数 INIT 怎么能free memory
python question, easy one初学C,对什么该free一直搞不明白
[合集] 快速填充memory的方法?大家新年好。 请教一个 c interview question
相关话题的讨论汇总
话题: int话题: byte话题: setting话题: mysetting话题: memset