Sponsored Content
Full Discussion: void pointer
Top Forums Programming void pointer Post 302655633 by vlm on Wednesday 13th of June 2012 12:15:43 PM
Old 06-13-2012
Quote:
Originally Posted by Corona688
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:

Code:
main(){
    void* a;
    fun(&a); //call a function named fun
}

void fun(void** b){
//do things
}

it worked fine.But when I did this for many void* in a loop

Code:
main(){
   void** a;
   a=(void**)malloc(n*sizeof(void*));
   for(int i=0;i<n;i++)
      fun(a[i]);//call the same function as above
}

void fun(void **b){
  //do things
}

it returns segmentation fault.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sorting the Void File in CSH

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)
Discussion started by: ilak1008
3 Replies

2. Programming

How to return void function pointer

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)
Discussion started by: umen
1 Replies

3. Programming

What is the difference between f(...), f(void) and f()

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)
Discussion started by: purplelightspar
2 Replies

4. UNIX for Dummies Questions & Answers

void (char *asd)

void asdf(char *asd) is this thing a pointer? (1 Reply)
Discussion started by: khestoi
1 Replies

5. Programming

pass a pointer-to-pointer, or return a pointer?

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)
Discussion started by: aaronwong
11 Replies

6. Programming

functions that manipulate void pointers

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)
Discussion started by: pyramation
3 Replies

7. Shell Programming and Scripting

Eliminate double void line

Hi, I need to eliminate each second void line in a text file. novus MILLENNIO ineo frater in episcopatus , presbyter et diacon|diaconus , (1 Reply)
Discussion started by: mjomba
1 Replies

8. HP-UX

converting void pointer to pthread_t on HPUX Itanium

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)
Discussion started by: skyineyes
0 Replies

9. Programming

Malloc to void pointer fails

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
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)
All times are GMT -4. The time now is 09:34 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy