The size of void may be undefined(not always -- sometimes it's '1' for the sake of easy pointer math), but the size of void * is definitely defined -- it's the same size as any other pointer.
I don't see any reason you couldn't have an array of void * pointers, and don't see anything wrong with the code you posted..
The thing is that when I try to refer to one element of the array,that means to one void* it doesn't work.
For example when I had:
it worked fine.But when I did this for many void* in a loop
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 DEBIAN
hash_uninstall
HASH(3pub) C Programmer's Manual HASH(3pub)NAME
hash_create, hash_destroy, hash_install, hash_lookup, hash_uninstall, hash_iter - generic hash tables
SYNOPSIS
#include <publib.h>
Hashtab *hash_create(unsigned long (*fun)(void *),
int (*cmp)(const void *, const void *));
void hash_destroy(Hashtab *ht);
void *hash_install(Hashtab *ht, void *data, size_t size);
void *hash_lookup(Hashtab *ht, void *data);
int hash_uninstall(Hashtab *ht, void *data);
int hash_iter(Hashtab *ht, int (*doit)(void *, void *), void *param);
DESCRIPTION
These functions implement generic hash tables. The table is created by hash_create and destroyed by hash_destroy. The fun argument is a
pointer to the hashing function, which must convert a datum to an unsigned long, which is then converted to an index into the hashing ta-
ble. cmp is a qsort(3)-like comparison functions, used to compare to (wannabe) hash table elements.
hash_install installs a new datum into the table. A pointer to the data and the size of the data are given as the arguments. If the size
is 0, only the pointer value is copied to the table. Otherwise a copy of the data is made into dynamically allocated memory.
hash_lookup attempts to find a datum in the hash table. A pointer to another datum is given as the argument. The comparison function
should compare equal (return 0) the desired datum and this datum (but the argument needn't be a fully initialized datum, although that is
up to the writer of the comparison function). There cannot be two elements in the hash table that are equal (the comparison function
returns 0 for them). It is up to the user to handle collisions.
hash_uninstall removes an element from a table. The argument is a pointer to a datum that identifies the element.
hash_iter goes through every element in the hash table and calls the doit function for each. The first argument it provides to doit is the
element in question, the second is whatever was given to hash_iter as param. If doit returns -1 or 0 for any element in the hash table,
hash_iter immediately returns without going through the remaining elements in the hash table. Any other return value from doit is ignored.
RETURNS
hash_create returns a pointer to the new hash table, or NULL if it fails.
hash_install returns a pointer to an element in the table (either the installed one, or one that was already installed, if one tries to
install the same datum twice).
hash_uninstall returns 0 if it found the element in the array, or -1 if it didn't.
hash_lookup return a pointer to the element it finds, or NULL if it doesn't find anything beautiful.
hash_iter returns -1, 0, or 1. If hash_iter receives a return value of -1 or 0 for some element from doit, hash_iter immediately returns
-1 or 0, respectively. In all other cases hash_iter returns 1.
SEE ALSO publib(3), qsort(3), bsearch(3)AUTHOR
Lars Wirzenius (lars.wirzenius@helsinki.fi)
Publib C Programmer's Manual HASH(3pub)