文字列を返す関数
文字列を返す関数を書いてみた。非常にシンプルな例だが。。。
#include <stdio.h> #include <stdlib.h> #include <string.h> char * returnString(char * v){ char * response; response = (char *)malloc(strlen(v)); strcpy(response, v); return response; } int main(int argc, char * args[]){ char * v1 = "0123456789"; char * v2 = returnString(v1); printf("v1 value is %s.\n", v1); printf("v2 value is %s.\n", v2); printf("v1 address is %p.\n", v1); printf("v2 address is %p.\n", v2); free(v2); return 0; }
実行結果は以下のような感じ。
$ ./a.out v1 value is 0123456789. v2 value is 0123456789. v1 address is 0x4007bc. v2 address is 0x684010.
値は同じだが、アドレスは異なっているのがわかる。