#include <stdio.h>
#include <stdlib.h>
int str_copy(char *str2, char *str1);
int str_len(char *str1);
int str_func(char **str2, char *str1);
int main(){
char str1[50]="I Love Chewing C hahaha";
char *str2;
char *str3;
str_func(&str2,str1);
str_func(&str3,"hello");
printf("%s\n",str1);
printf("%s\n",*str2);
printf("%s\n",*str3);
free(str2);
free(str3);
return 0;
}
int str_func(char **str2, char *str1){
str2=(char **)malloc(str_len(str1)*sizeof(char *)+1);
str_copy(*str2,str1);
return 0;
}
int str_len(char *str1){
int count=0;
while(*str1){
str1++;
count++;
}
return count;
}
int str_copy(char *str2, char *str1){
while(*str1){
*str2=*str1;
str2++;
str1++;
}
*str2='\0';
return 0;
}
위 코드는 str1 문자열을 str2 로 복사하고 마찬가지로 str3로 hello 라는 문자열을 복사 받는 작업입니다. str2 와 str3 를 직접 복사 받고 싶은 문자열의 길이만큼 메모리를 동적 할당 한 후에 str1,str2,str3 세개의 문자열을 출력 하고 싶어서 만들어 봤는데 실행이 안되서요 ㅠ 문자열의 길이를 구하는함수(str_len) 와 문자열을 복사하는 함수(str_copy) 그리고 그 두작업과 메모리를 할당하는 하나의 함수(str_func)를 이용해서 문제를 풀어 보고 싶은데 오류는 뜨지 않지만 실행이 안되네요..ㅠ 위 코드의 문제점이나 더 좋은 방법 등 피드백좀 받고 싶습니다! 오늘 이 싸이트 처음 이용해 보는데 실력자 분들이 많은 것 같아서요 부탁드립니다!!