|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
How to manipulate a variable value using an array?
I really really really want to be able to use an array to call my relays. How can i do this? See below post for what i want to be able to do.
Last edited by amateurrobotguy : 12-12-2007 at 22:24. |
|
#2
|
||||
|
||||
|
Re: How do i put all of the relay inputs into an array?
Better yet, how can a store variable names within an array so that when i say:
myVar = 1; array[1] = {myVar}; array[1] = 2; printf(myVar); I want the displayed output to be 2 Last edited by amateurrobotguy : 12-12-2007 at 22:20. |
|
#3
|
|||
|
|||
|
Re: How do i put all of the relay inputs into an array?
You can store the address of the variable in the array, then use that address as a pointer to the value you want to print. Your array would be declared as an array of pointers.
myVar = 1;Good luck, ~Phil Last edited by Phil Mack : 13-12-2007 at 02:33. Reason: changed printf to assume myVar is an int |
|
#4
|
|||
|
|||
|
Re: How to manipulate a variable value using an array?
Or use a macro.
Code:
#define MYVAR array[1] print(MYVAR); |
|
#5
|
||||
|
||||
|
Re: How to manipulate a variable value using an array?
I need you to confirm if what I am thinking is correct:
myVar = 1; Establish the "shell" as being = 1 array[1] = &myVar; Let the 1st value of array[] = the address of the "shell" (*)(array[1]) = 2; the * means modify/check the contents of the address of myVar printf(*myVar); since the shell wasn't updated, the * is needed to display the contents of the address of myVar since printf(myVar) would return 1 Last edited by amateurrobotguy : 13-12-2007 at 00:36. |
|
#6
|
|||||
|
|||||
|
Re: How to manipulate a variable value using an array?
Quote:
Code:
(*)(array[1]) = 2; Code:
printf("%d\n",myVar);
|
|
#7
|
||||
|
||||
|
Re: How to manipulate a variable value using an array?
int *ptr;
int a, b; a = 10; ptr = &a; b = *ptr; Why bother with the int *ptr declaration when it has to be used again in the b= part? Is this just proper etiquette and not really needed? Is this alright for my declaration: int joystickbuttons[8] = {&p1_sw_trig, &p1_sw_top, &pl_sw_aux1, &p1_sw_aux2, &p2_sw_trig, &p2_sw_top, &p2_sw_aux1, &p2_sw_aux2}; And this for my looped search: if ((*)joystickbuttons[arrayindexer[1]] == 1) arrayindexer is just a simple array I am using for a counter. If all this looks good then it means I finally figured this whole pointer thingie out largely thanks to this forum and Wiki. Last edited by amateurrobotguy : 13-12-2007 at 01:50. |
|
#8
|
|||
|
|||
|
Re: How to manipulate a variable value using an array?
Quote:
Code:
int *ptr; //ptr is a pointer to the address an 'int' somewhere in memory int a, b; //compiler chooses where these go in memory, each have an address a = 10; //set value of a to 10 //pass a by reference to ptr ptr = &a; //ptr now holds the address of where a is in memory b = *ptr; //b now holds the value (use *) that ptr points to The first line declares a pointer, which is different from a regular variable. You can do other cool things with this, too. Code:
void idouble(int * input){
*input *= 2 ;
}
void main(){
int x ;
x = 5 ;
idouble(&x) ;
print(x);
}
Last edited by Tom Bottiglieri : 13-12-2007 at 01:58. |
|
#9
|
||||
|
||||
|
Re: How to manipulate a variable value using an array?
So i have to say that my array of buttons is going to be holding addresses by declaring it like this:
Code:
int (*)joystickbuttons[8] = {&p1_sw_trig, &p1_sw_top, &pl_sw_aux1, &p1_sw_aux2, &p2_sw_trig, &p2_sw_top, &p2_sw_aux1, &p2_sw_aux2};
And the 2nd half of the above code: Code:
if ((*)joystickbuttons[arrayindexer[1]] == 1) I don't get some of your example: Code:
void idouble(int * input){ Input the address and convert it to the data "input"
*input += input ; I don't get the use of *input
}
void main(){
int x ;
x = 5 ;
idouble(&x) ; Call the above function giving it an address as a parameter
print(x); I don't get how the idouble() returns x
}
Last edited by amateurrobotguy : 13-12-2007 at 02:11. |
|
#10
|
|||
|
|||
|
Re: How to manipulate a variable value using an array?
Quote:
|
|
#11
|
||||
|
||||
|
Re: How to manipulate a variable value using an array?
Oh you sly bastard
You are basically bypassing the whole naming system of variables with input and directly puting data to addresses. I like this The int *input is just the declaration of input and not the actual conversion of &x to data....that was the confusing part. I can see why google refers to pointers as "advanced c".Can you check the code i posted above the above post to tell me if that will work fine? Last edited by amateurrobotguy : 13-12-2007 at 02:29. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| turning inputs into outputs | Huron Warriors | Programming | 4 | 19-04-2007 22:10 |
| How do the Analog Inputs work? | JBotAlan | Electrical | 3 | 07-01-2005 00:11 |
| How to put Inventor pics on the web | Andrew Schuetze | Inventor | 7 | 05-01-2005 13:59 |
| How much time do you put into building your robot | Wayne Doenges | General Forum | 16 | 29-01-2002 19:30 |
| put effort into thread subject | Brandon Martus | General Forum | 12 | 28-01-2002 19:12 |