由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - malloc返回的地址指向了正在被其它变量使用的内存
相关主题
程序中的各个变量/数组的内存地址是否会混在一起?C++动态内存碎片问题
purify和valgrind的比较为啥指针读出的数值十分巨大或者十分小?
超牛的debugC++debug遇到的问题
ask for help about AMD clusterG++用-g和-O3编译运行结果竟然不一样
a question about memory.请教一下,C++如何判断未初始化的变量
Valgrind报uninitialized value was created by a heap allocat (转载)求GCC高手
c里面有什么函数可以请问这个C++程序有什么问题吗
C 语言,初学者问题(3)关于malloc/free和循环
相关话题的讨论汇总
话题: malloc话题: free话题: 变量话题: something话题: int
进入Programming版参与讨论
1 (共1页)
n********r
发帖数: 719
1
比如之前定义了一个结构体A
A里有一个二维数组a
现在调用malloc分配一段内存空间给一个指针变量B
发现B的值和A.a是一样的
出现这个问题最可能的原因是什么呢?多谢指点!
对了, 有一点不知道有没有关系,中间B曾经反复malloc和free过,就像这样:
int *B;
for(int i=0; i B=malloc(...);
... //do something
free(B);
B = malloc(...);
... //do something
free(B);
}
B = malloc(...);
free(B);

f****4
发帖数: 1359
2
run valgrind

【在 n********r 的大作中提到】
: 比如之前定义了一个结构体A
: A里有一个二维数组a
: 现在调用malloc分配一段内存空间给一个指针变量B
: 发现B的值和A.a是一样的
: 出现这个问题最可能的原因是什么呢?多谢指点!
: 对了, 有一点不知道有没有关系,中间B曾经反复malloc和free过,就像这样:
: int *B;
: for(int i=0; i: B=malloc(...);
: ... //do something

c****p
发帖数: 6474
3
B反复malloc free可能不是问题。
问题是可能是数组越界之类的把malloc空间前部的数据corrupt了。
还是查下数组越界吧。

【在 n********r 的大作中提到】
: 比如之前定义了一个结构体A
: A里有一个二维数组a
: 现在调用malloc分配一段内存空间给一个指针变量B
: 发现B的值和A.a是一样的
: 出现这个问题最可能的原因是什么呢?多谢指点!
: 对了, 有一点不知道有没有关系,中间B曾经反复malloc和free过,就像这样:
: int *B;
: for(int i=0; i: B=malloc(...);
: ... //do something

a*******r
发帖数: 122
4
Where is 结构体A defined?
1 (共1页)
进入Programming版参与讨论
相关主题
关于malloc/free和循环a question about memory.
关于C的数组大小Valgrind报uninitialized value was created by a heap allocat (转载)
如何在数组中存无限量的元素?比较复杂c里面有什么函数可以
数组定义的时候,分配空间了么?C 语言,初学者问题(3)
程序中的各个变量/数组的内存地址是否会混在一起?C++动态内存碎片问题
purify和valgrind的比较为啥指针读出的数值十分巨大或者十分小?
超牛的debugC++debug遇到的问题
ask for help about AMD clusterG++用-g和-O3编译运行结果竟然不一样
相关话题的讨论汇总
话题: malloc话题: free话题: 变量话题: something话题: int