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 | |