Помогите разобраться с поведением указателя.
Есть функция:
t_cycles *get_cycle_members(t_ligand *ligand)
{
unsigned int *data,*prev,j,prev_atom_number,atom_number;
char **bond_matrix;
t_cycles *cycles;
//Init all
cycles=(t_cycles*)malloc(sizeof(t_cycles));
cycles->cycle=(t_one_cycle*)malloc(sizeof(t_one_cycle));
cycles->size=0;
data=(unsigned int*)malloc(sizeof(unsigned int)*(ligand->atom_number+1));
prev=(unsigned int*)malloc(sizeof(unsigned int)*(ligand->atom_number+1));
//Cut and find again
while (atom_number=def_data(data,&bond_matrix,cycles,ligand))
.....
функция def_data:
unsigned int def_data(unsigned int *data,char **bond_matrix,t_cycles *cycles,t_ligand *ligand)
{
unsigned int j,i,p,q,atom_number;
bond_matrix=(char**) define_bond_matrix(ligand);
....
где указателю bond_matrix присваиваеться значение.
Во второй функции указатель корректно передаеться, а вот в первой заменяеться на всякий бред.
Как его можно передать наверх?
Спасибо.