Using pointers to struct members as args to functions
In a well-known book on the C language, there is an example of an efficient method for using a struct member as an argument to a function. (I'm a C noob, but I believe the correct terminology might be: use call-by-reference instead of call-by-value.) The function is printf.
Anyway, here's a similar example, to illustrate the technique:
This is easy enough to understand.
But how do we do this with structure members that are themselves pointers or functions?
Let's say I have a struct that resembles the one below. And I want to print the value of lg.
But how do we do this with structure members that are themselves pointers or functions?
Let's say I have a struct that resembles the one below. And I want to print the value of lg.
Struct member lg is a pointer to a function that takes an int and returns void...so i am not sure what you mean when you want to print its value. Value in lg will be address of the function it is pointing to and dereferencing it *lg is the same thing as calling that function..kind of like
JohnGraham: Would const be useful if the struct was as follows?
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.
JohnGraham: Would const be useful if the struct was as follows?
Yes, (assuming you want all the elements of your array to be const) since that's qualifying the array. It seemed like you wanted to make a const type (which you could do with a typedef).
JG: Would you believe I also omitted a typdef that did just that? For the kelly example, I took the struct out of a context where I still don't fully understand the context. Hence the omissions.
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)
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)
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)
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)
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)
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)
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)
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)
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)