مشکل در بازگشت string برگشتی از تابع - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مشکل در بازگشت string برگشتی از تابع

+1 امتیاز

مشکل این کد چیه ؟

main () {
char  *mergedString = mergeStrings( frags[maxOverlapArrPos1], frags[maxOverlapArrPos2], maxCharOverlap);
   printf ("mergedStringInMain is %s\n", mergedString);
}

char * mergeStrings(char * string1, char * string2, int overlapCharSize){
  int overlapStartPosition = strlen(string1) - overlapCharSize;
  char output[] = "";

  if (strlen(string2)>overlapCharSize){
     strncat(output, string1, overlapStartPosition);
     strncat(output , string2, strlen(string2));
  } 
  printf ("mergedStringInFunction is %s\n", output);
  return output;

}

خروجی کد اینه :

mergedString is abcdefg

mergedString is ?

سوال شده فروردین 24, 1393  بوسیله ی SaveMe (امتیاز 69)   2 3 3
یک مقدار باید توضیح بدین در موردش که چی کار میکنه و ... تا دوستان بتونن کمکتون کنن
غیر توضیح دادن باید کد رو هم کامل بزاری .

frags و maxOverlapArrPos1 و ... چی هستن ؟ اصلا معلوم نیست ...

1 پاسخ

+1 امتیاز

آرایه output  رو بصورت local تعریف کردی بعد از تموم شدن بدنه تابع و زمان return پاک میشه پس داخل main هم نمیتونی ازش استفاده کنی

مورد دوم برای استفاده از strncat آرایت باید فضای خالی لازم رو داشته باشه

  char* output = new char[overlapStartPosition + strlen(string2)];

 

پاسخ داده شده فروردین 25, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
...