How do these both work? I would think the second one wouldn't work because when it is called here copy_string(line, line1)
since it does not have a &
. It also does not use a pointer in the function header copy_string(char line[], char line1[])
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
void manipulateStrings(char *line[], char line1[])
{
strcpy (line, line1);
}
int main(int argc, char *argv[])
{
char line[3] = {0};
char line1[80] = "hi";
manipulateStrings(&line, line1);
printf("line is %s \n", line);
printf("line1 is %s \n", line1);
return 0;
}
Surprised this one works.
#include <stdio.h>
#include <string.h>
void copy_string(char line[], char line1[]) {
strcpy (line, line1);
}
int main() {
char line[3] = {0};
char line1[80] = "hi";
copy_string(line, line1);
printf("line is %s \n", line);
printf("line1 is %s \n", line1);
return 0;
return 0;
}