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]);

  
 }
}

Recommended Answers

All 2 Replies

That doesn't compile.

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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.