【发布时间】:2015-03-10 14:18:07
【问题描述】:
前几部分代码:
typedef struct
{
double sr, med;
int **t;
}wynik;
wynik calc(int *t[], int size)
{
int i, *niep = NULL, j = 0, k = 1, sum = 0;
int *sorted = (int*)malloc(size*sizeof(int));
wynik out;
//coping, sorting
for (i = 0; i < size; i++)
sorted[i] = (*t)[i];
qsort(sorted, size, sizeof (**t), cmp);
out.t = &sorted;
...
return out;
}
然后在 main() 中:
wynik get = calc(&tab, tab_size);
使用调试器我发现在 calc() 中 out.t 指向一个数组,但在 main() 中 get.t 指向一些奇怪的东西。 如何解决?
【问题讨论】:
-
您的结构不包含数组。它包含一个指针。
-
很抱歉,这段代码没有任何意义。看起来您不确定指针和数组是如何工作的,因此将您的程序混淆到您不再知道它做什么的地步。最重要的是,您有内存泄漏。此代码无法挽救。