숫자 배열을 문자열로 두번 받아서 모든 숫자 배열을 int형으로 바꿔주는 함수를 만들려고 하는데요...
// 아스키코드로 입력 받은 문자열을 정수열로 변환시키기
int* convert(char str[], int n)
{
int i;
static int arr[100];
for(i=0;i<n;i++)
{
arr[i]=str[i]-48;
}
return arr;
}
int main(void)
{
char str1[100], str2[100];
int *p1, *p2;
int len1, len2, i;
scanf("%s", str1);
len1=strlen(str1);
p1=convert(str1, len1);
len2=strlen(str2);
len1=strlen(str2);
p2=convert(str2, len2);
// 둘 다 10자리 숫자 라면...
for(i=0;i<10;i++)
{
printf("%d %d\n", p1[i]. p2[i]);
}
return 0;
}
이런식의 코드가 있다고 치면,,
제가 원하는 결과는
앞에는 변환된 str1 숫자들이고,,,
뒤에는 변환된 str2 숫자들이 나오는건데;;
정작 출력결과를 살펴보면
앞에 변환된 str1는 증발해버리고 그 자리에 변환된 str2로 변경되서 출력되는거 같더라구요.
(가장 마지막에 함수 사용한 내용이 그 전 내용도 덮어버리는거 같음)
이때 변환된 str1도 그대로 살리고, str2도 변환되서 나오고 하고싶은데
어떻게 해야할까요?
스택에다 저장해놓고 스택의 주소값을 주니까 그러지
두번째 convert가 콜될때 그 스택에 덮어써서그럼
malloc으로 동적할당 하렴
ㅇㅇ// 아직 동적할당 쓸 줄 모르는데 ㅠㅠ convert함수에서 int arr[100]=(int*)malloc(n); 요런식으로 쓰면 되나요??
int *arr = (int*) malloc (sizeof(int)*100);
캄사합니당 인트사이즈에 100곱할때 100대신 len1이나 len2값 넣어도 되나요??
내
오오... 동적할당써주니까 되네용 캄사캄사