invalid conversion from void* to int**
Hi,
I'm using this alloc_mem-function:
- - - - - - - - - - - - - - - - - - - - - - - -
void *alloc_mem (size_t num_elems, size_t elem_size,
char *filename, int line,
size_t *total_mem)
{
void *mem;
size_t size = num_elems*elem_size;
size += (sizeof (size_t) <= elem_size) ? elem_size
: sizeof (size_t);
mem = malloc(size);
if (!mem)
{
fprintf(stderr, "%s: line %d, malloc(%lu) failed.\n",
filename, line, (unsigned long) size);
exit(EXIT_FAILURE);
}
/* save memory allocated for this pointer */
memcpy(((char *)mem)+num_elems*elem_size,
&size, sizeof size);
*total_mem += size; /* update total memory allocated untill now */
return mem;
}
- - - - - - - - - - - - - - - - - - - - - - - -
But I then declared some arrays like:
double **two_D_double;
int **two_D_int;
double *one_D_double;
int *one_D_int;
etc. etc...
MS visual studio 2005 + gcc doesn't complain. But with g++ I get such an
error as:
"invalid conversion from void* to int**" (the same for double **)
I was told I should ask about the g++ compiler here, although the code
is actually implemented in a C-program. So what's the language
difference - why can't I do an "implicit conversion from void* to int**"
in C++ ?
Best regards / Med venlig hilsen
Martin JHrgensen
--
---------------------------------------------------------------------------
Home of Martin JHrgensen - http://www.martinjoergensen.dk