-
Variable scope
I have the following piece of code:
Code:
int main()
{
int key = 1;
getKey();
printKey();
printf("%s", "Key in main is: ");
printf("%d", key);
return 0;
}
int getKey()
{
int *key;
printf("Please enter a key: ");
scanf("%d", &key);
}
int printKey()
{
int *key;
printf("%s", "You entered: ");printf("%d\n", key);
}
How exactly do i set "key" in main to whatever is being entered in getKey()? I can't use the assign & operator on a pointer so i'm having trouble referencing it.
-
You could use a pointer:
Code:
#include <stdio.h>
void getKey(int *);
int main(void)
{
int key = 1;
getKey(&key);
printf("key = %d\n", key);
return 0;
}
void getKey(int *k)
{
printf("Please enter a key: ");
fflush(stdout);
scanf("%d", k);
}
Or you could return a value:
Code:
#include <stdio.h>
int getKey(void);
int main(void)
{
int key = 1;
key = getKey();
printf("key = %d\n", key);
return 0;
}
int getKey(void)
{
int k;
printf("Please enter a key: ");
fflush(stdout);
scanf("%d", &k);
return k;
}
-
Find a tutorial on function paramters and pointers
Code:
#include <stdio.h>
void getKey(int *key){
printf("Please enter a key: ");
scanf("%d", key);
}
void printKey(int *key){
printf("You entered: ");
printf("%d\n", *key);}
int main(void){
int key = 1;
getKey(&key);
printKey(&key);
printf("Key in main is: ");
printf("%d", key);
return 0;
}