1,105,340 Community Members

function / array help

Member Avatar
hwoarang69
Posting Pro
572 posts since Feb 2012
Reputation Points: -4 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 9 [?]
 
0
 

does any one know why my for loop work fine but printf("%c",num[0]); get me 0?

void test(char[]);
void test2(char[]);

int main(void)
{
  char num[10];
  test(num);
  test2(num);
}

void test()
{
   num[0] = '1';
   num[1] = '2'
}


void test2(int num[])
{
  for(a = 0; a < 10; a++)
 {
  printf("%c",num[a]);


  printf("%c",num[0]);

  
 }
}
Member Avatar
histrungalot
Posting Whiz in Training
280 posts since May 2008
Reputation Points: 32 [?]
Q&As Helped to Solve: 36 [?]
Skill Endorsements: 3 [?]
 
0
 

That doesn't compile.

Member Avatar
rubberman
Senior Poster
3,989 posts since Mar 2010
Reputation Points: 513 [?]
Q&As Helped to Solve: 500 [?]
Skill Endorsements: 87 [?]
 
0
 

The num[] array is a local variable to main(). You need to make it global for this to work. Just move the declaration outside of main, as in:

void test(char[]);
void test2(char[]);

char num[10];
 
int main(void)
{
  test(num);
  test2(num);
}
 
void test()
{
   num[0] = '1';
   num[1] = '2'
}
 
 
void test2(int num[])
{
  for(a = 0; a < 10; a++)
 {
  printf("%c",num[a]);
 
 
  printf("%c",num[0]);
 
 
 }
}

It's still beginner's code, but it should work (not tested, not certified).

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
View similar articles that have also been tagged: