Sponsored Content
Top Forums Programming Using pointers to struct members as args to functions Post 302542817 by uiop44 on Thursday 28th of July 2011 04:31:04 PM
Old 07-28-2011
Quote:
Originally Posted by JohnGraham

Code:
/* `const' is useless here! */
struct kelly {
    /* ... */
    void (*lg)(int);
};

JohnGraham: Would const be useful if the struct was as follows?

Code:
const struct kelly {
/* ... */
void (*lg)(int);
} friends[] = {
/* ... */
};

Shamrock: Many thanks.

The "kelly" struct is based on real code that works well, but I (sloppily) took it out of a reasonably complex context, where the function being called by dereferencing "lg" varies based on the program name, whether input is from stdin/file, the command line arguments, sanity checks, etc.

To understand this code, there's a fair amount of indirection to resolve. The reward if I can figure it out is that it's a workable example of how to parse an above average number of command line variations.
 

9 More Discussions You Might Find Interesting

1. Programming

Pointer to a struct (with pointers) *** glibc detected *** double free

I am using a structure defined as follows struct gene_square { double *x; double *y; };I have class, with a member function which is a pointer of this type: gene_square* m_Genes;I am allocating memory in the constructors like this: m_Genes = new gene_square; for (ii=0;... (1 Reply)
Discussion started by: jatoo
1 Replies

2. Homework & Coursework Questions

C++ struct pointers & functions

Hi All, My latest assignment (practice not coursework!) is to write prototype interactive exam/test console application. I've used structs to store the question information (not sure if this was the best way to do it?) and I have the following code that outputs each question and it's possible... (0 Replies)
Discussion started by: pondlife
0 Replies

3. 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

4. UNIX for Dummies Questions & Answers

How to access a struct within a struct?

Can someone tell me how to do this? Just a thought that entered my mind when learning about structs. First thought was: struct one { struct two; } struct two { three; } one->two->three would this be how you would access "three"? (1 Reply)
Discussion started by: unbelievable21
1 Replies

5. Homework & Coursework Questions

Passing pointers to struct

Hi, i'm trying to copy a struct into a binary file using the unix instruction write, so i declare and fill the struct "superbloque" in one function "initSB" and then i pass the pointer to another function called bwrite (for block write) which calls write. The problem is that i call the function... (2 Replies)
Discussion started by: ignatius3
2 Replies

6. Programming

Passing an instance of struct to functions in other src files

I am trying to work out the best syntax for a relatively simple operation. The goal is to declare an instance of a struct and pass it around to be populated and have the data manipulated. There is an extra wrinkle in that the functions are in different src files. The main is simple, #include... (5 Replies)
Discussion started by: LMHmedchem
5 Replies

7. Programming

Storing C++-struct in file - problem when adding new item in struct

Hi, I have received an application that stores some properties in a file. The existing struct looks like this: struct TData { UINT uSizeIncludingStrings; // copy of Telnet data struct UINT uSize; // basic properties: TCHAR szHost; //defined in Sshconfig UINT iPortNr; TCHAR... (2 Replies)
Discussion started by: Powerponken
2 Replies

8. Programming

Dynamically enumerating the members of a C++ struct

In C++ there is a struct with the following structure: typedef struct myStruct { string s_date; float fA; float fB; float fC; ..... float fZ; } myData; After some computations on the values of the struct members are inserted into a database table: myData... (4 Replies)
Discussion started by: figaro
4 Replies

9. Shell Programming and Scripting

Store args passed in array but not the first 2 args

Store args passed in array but not the first 2 args. # bash declare -a arr=("$@") s=$(IFS=, eval 'echo "${arr}"') echo "$s" output: sh array.sh 1 2 3 4 5 6 1,2,3,4,5,6 Desired output: sh array.sh 1 2 3 4 5 6 3,4,5,6 (2 Replies)
Discussion started by: iaav
2 Replies
old_api: Calls mib module code written in the old style of coLibrary Functions old_api: Calls mib module code written in the old style of code.(3)

NAME
old_api: Calls mib module code written in the old style of code. - This is a backwards compatilibity module that allows code written in the old API to be run under the new handler based architecture. More... Functions netsnmp_mib_handler * get_old_api_handler (void) returns a old_api handler that should be the final calling handler. int netsnmp_register_old_api (const char *moduleName, struct variable *var, size_t varsize, size_t numvars, oid *mibloc, size_t mibloclen, int priority, int range_subid, oid range_ubound, netsnmp_session *ss, const char *context, int timeout, int flags) Registers an old API set into the mib tree. int netsnmp_register_mib_table_row (const char *moduleName, struct variable *var, size_t varsize, size_t numvars, oid *mibloc, size_t mibloclen, int priority, int var_subid, netsnmp_session *ss, const char *context, int timeout, int flags) registers a row within a mib table. int netsnmp_old_api_helper (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) implements the old_api handler. DETAILED DESCRIPTION
This is a backwards compatilibity module that allows code written in the old API to be run under the new handler based architecture. Use it by calling netsnmp_register_old_api(). FUNCTION DOCUMENTATION
netsnmp_mib_handler* get_old_api_handler (void) returns a old_api handler that should be the final calling handler. Don't use this function. Use the netsnmp_register_old_api() function instead. Definition at line 40 of file old_api.c. Referenced by netsnmp_register_mib_table_row(), and netsnmp_register_old_api(). int netsnmp_old_api_helper (netsnmp_mib_handler * handler, netsnmp_handler_registration * reginfo, netsnmp_agent_request_info * reqinfo, netsnmp_request_info * requests) implements the old_api handler. Definition at line 233 of file old_api.c. int netsnmp_register_mib_table_row (const char * moduleName, struct variable * var, size_t varsize, size_t numvars, oid * mibloc, size_t mibloclen, int priority, int var_subid, netsnmp_session * ss, const char * context, int timeout, int flags) registers a row within a mib table. Definition at line 119 of file old_api.c. int netsnmp_register_old_api (const char * moduleName, struct variable * var, size_t varsize, size_t numvars, oid * mibloc, size_t mibloclen, int priority, int range_subid, oid range_ubound, netsnmp_session * ss, const char * context, int timeout, int flags) Registers an old API set into the mib tree. Functionally this mimics the old register_mib_context() function (and in fact the new register_mib_context() function merely calls this new old_api one). Definition at line 51 of file old_api.c. net-snmp 5 Oct 2002 old_api: Calls mib module code written in the old style of code.(3)
All times are GMT -4. The time now is 04:20 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy