it worked fine.But when I did this for many void* in a loop
it returns segmentation fault.
Dont know what code is inside fun but you cant dereference a void*...besides a[i] is a void* not void** so definition of fun needs to change to "void fun(void *b) {...}"
First and foremost, this is not a homework for your information. I'm just new to using c-shell programming and I just wanted to make my life easier @ work.
Say, the file contains the following:
ID FILE NO. SL VP
1 1 22 33
1 2 ... (3 Replies)
Hello all
im trying to build function that will return void function pointer
what is mean is ( not working )
the main function
void * myClass::getFunction(int type){
if(type==1)
return &myClass::Test1;
if(type==2)
return &myClass::Test2;
}
void myClass::Test1(){... (1 Reply)
What is the difference between f(...) , f(void),f()
I know that f(void) doesn't take any parameters, but what about f() and f(...) Does the last call of function even exists? (2 Replies)
If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it:
(1) one is to pass a pointer-to-pointer parameter, like:
int my_malloc(int size, char **pmem)
{
*pmem=(char *)malloc(size);
if(*pmem==NULL)... (11 Replies)
I have two or more linked lists that have the same names for their "next". For example,
struct server_t {
sockaddr_in * sin;
server_t * next_;
}
struct player_t {
char name;
player_t * next_;
}
How can I get a function to take in either type and manipulate the pointers?
I... (3 Replies)
i am trying to convert void pointer to pthread_t on hpux-itanium 64 bit which fails as below
"src/file.cpp", line 88: error #2171: invalid type conversion
pthread_t tid = reinterpret_cast<pthread_t>(m_threadId);
1 error detected in the compilation of "src/file.cpp"
... (0 Replies)
I have a function to which I will pass a struct ID and it will return me a string.
I will pass a pointer to store the name string and that pointer will be allocated memory by the function called.
int ConvertIDToName(void *id, void *name, size_t *size)
{
int status = 0;
... (5 Replies)
Discussion started by: rupeshkp728
5 Replies
LEARN ABOUT LINUX
__free_hook
MALLOC_HOOK(3) Linux Programmer's Manual MALLOC_HOOK(3)NAME
__malloc_hook, __malloc_initialize_hook, __memalign_hook, __free_hook, __realloc_hook, __after_morecore_hook - malloc debugging variables
SYNOPSIS
#include <malloc.h>
void *(*__malloc_hook)(size_t size, const void *caller);
void *(*__realloc_hook)(void *ptr, size_t size, const void *caller);
void *(*__memalign_hook)(size_t alignment, size_t size,
const void *caller);
void (*__free_hook)(void *ptr, const void *caller);
void (*__malloc_initialize_hook)(void);
void (*__after_morecore_hook)(void);
DESCRIPTION
The GNU C library lets you modify the behavior of malloc(3), realloc(3), and free(3) by specifying appropriate hook functions. You can use
these hooks to help you debug programs that use dynamic memory allocation, for example.
The variable __malloc_initialize_hook points at a function that is called once when the malloc implementation is initialized. This is a
weak variable, so it can be overridden in the application with a definition like the following:
void (*__malloc_initialize_hook)(void) = my_init_hook;
Now the function my_init_hook() can do the initialization of all hooks.
The four functions pointed to by __malloc_hook, __realloc_hook, __memalign_hook, __free_hook have a prototype like the functions malloc(3),
realloc(3), memalign(3), free(3), respectively, except that they have a final argument caller that gives the address of the caller of mal-
loc(3), etc.
The variable __after_morecore_hook points at a function that is called each time after sbrk(2) was asked for more memory.
CONFORMING TO
These functions are GNU extensions.
EXAMPLE
Here is a short example of how to use these variables.
#include <stdio.h>
#include <malloc.h>
/* Prototypes for our hooks. */
static void my_init_hook(void);
static void *my_malloc_hook(size_t, const void *);
/* Variables to save original hooks. */
static void *(*old_malloc_hook)(size_t, const void *);
/* Override initializing hook from the C library. */
void (*__malloc_initialize_hook) (void) = my_init_hook;
static void
my_init_hook(void)
{
old_malloc_hook = __malloc_hook;
__malloc_hook = my_malloc_hook;
}
static void *
my_malloc_hook(size_t size, const void *caller)
{
void *result;
/* Restore all old hooks */
__malloc_hook = old_malloc_hook;
/* Call recursively */
result = malloc(size);
/* Save underlying hooks */
old_malloc_hook = __malloc_hook;
/* printf() might call malloc(), so protect it too. */
printf("malloc(%u) called from %p returns %p
",
(unsigned int) size, caller, result);
/* Restore our own hooks */
__malloc_hook = my_malloc_hook;
return result;
}
SEE ALSO mallinfo(3), malloc(3), mcheck(3), mtrace(3)COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
GNU 2002-07-20 MALLOC_HOOK(3)