this is a snaphot of the code.i hope it helps because i can't find a point where the pointer is dereferenced.
Code:
int **gene_pricing(int run_mode,int no_of_vehicles,int gene_dim,int *gene,
int *edge_weight_section,int *demand,int capacity,int *fitness){
//various variables
register int i,j;
int int_fitness,sub_cost,ext_tour_size,ext_dim;
int **prev_after,count;
prev_after=malloc(no_of_vehicles*sizeof(*prev_after));
if(prev_after==NULL){
perror ("malloc");
exit(EXIT_FAILURE);
}
for(i=0;i<no_of_vehicles;i++){
prev_after[i]=malloc(gene_dim*sizeof(**prev_after));
if(prev_after[i]==NULL){ //Check for memory redudancy
perror("malloc");
exit(EXIT_FAILURE);
}
}
for(i=0;i<no_of_vehicles;i++){
count=1;
for(j=0;j<gene_dim;j++){
if(gene[j]==i){
prev_after[i][j]=count;
count++;
}
else prev_after[i][j]=0;
}
}
.
. blah blah blah irrelevant stuff (nothing else allocated or used from the above)
.
*fitness=int_fitness; //some variable returned by reference externally
return prev_after;
}
int main(){
.
.
.
int ext_fitness,i,j;
int **ext_matrix;
ext_matrix=malloc(2*sizeof(*ext_matrix));
for(i=0;i<2;i++){
ext_matrix[i]=malloc(17*sizeof(**ext_matrix));
}
ext_matrix=gene_pricing(0,2,17,gene17,edges17,demand17,10,&ext_fitness);
printf("\n\n%d\n\n",ext_fitness);
printf("\n\n");
for(i=0;i<2;i++){
for(j=0;j<17;j++) printf("%d ",ext_matrix[i][j]);
printf("\n");
}
for(i=0;i<2;i++) free(ext_matrix[i]);
free(ext_matrix);
return EXIT_SUCCESS;
}
any other suggestions???
thanx for your help and patience.