ポインタを理解してるというのは気のせいだった
void copy_test (char *pointer) { char *str = "test"; pointer = malloc(strlen(str) + 1); strcpy(pointer, str); } int main (void) { char *test; copy_test(test); printf("%s\n", test); free(test); return 0; }
なんでうまくいかないのか理解できなかった
void copy_test (char **pointer) { char *str = "test"; *pointer = malloc(strlen(str) + 1); strcpy(*pointer, str); } int main (void) { char *test; copy_test(&test); printf("%s\n", test); free(test); return 0; }
こうしなきゃいけないよね