In article
<d009b12e-13ff-44bd-a75b-b66a58854ca0@[EMAIL PROTECTED]
>,
Benoit Lefebvre <benoit.lefebvre@[EMAIL PROTECTED]
> wrote:
>How come the value of the "word" variable change when using the
>testfunct function? Am I sending a pointer to the word variable to
>this function or whatever ??
>int testfunct (char *myword)
>{
> strcpy(myword,"hello");
>
> return 0;
>}
>int main (int argc, char *argv[])
>{
> char word[100];
>
> strcpy(word,"weeee");
> printf("WORD: %s\n", word);
> testfunct(word);
When you pass an array name as a function parameter, it gets silently
converted into a pointer to the first element of the array.
> printf("WORD: %s\n", word);
>
> return 0;
>}
So yes, the above is fine / legal / well-defined, as long as testfunct()
does not write more characters into myword than the object is defined
to hold.
--
"The art of storytelling is reaching its end because the epic
side of truth, wisdom, is dying out." -- Walter Benjamin


|