If needed , you might run the example code below here:
#include <stdio.h>
#include <string.h>
void foo(char *name);
char bar(char c);
int main(int argc, char **argv)
{
foo("Ashcroft");
return 0;
}
void foo(char *name)
{
printf("name = %s\n", name);
int name_length = strlen(name);
char code[name_length];
printf("length of name %d\n", name_length);
for (int i = 0; i < name_length; i++)
{
code[i] = bar(name[i]);
}
printf("length of code is %ld\n", strlen(code));
printf("name is %s\n", name);
}
char bar(char c)
{
return 'a';
}
Problem
I expected length of code
to be the same as length of name
,
but somehow the length changes after the for loop.
Output
name = Ashcroft
length of name 8
length of code is 14
name is Ashcroft
Update
tried char code[name_length+1];
but the result is still the same