انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: سید وحید رضا برهانی در 13 فروردین 1389، 10:07 ب‌ظ

عنوان: خطای undefined reference
ارسال شده توسط: سید وحید رضا برهانی در 13 فروردین 1389، 10:07 ب‌ظ
سلام
نمی دونم این خطا چیه وچرا به وجود می یاد یکی بیاد کمک کنه متن کامل خطا:
vahid@GNU:~/newproject$ g++ nc.cpp
/tmp/cchViyZW.o: In function `main':
nc.cpp:(.text+0x6b): undefined reference to `compare(int*, int*, int, int)'
collect2: ld returned 1 exit status
و سورسی که کامپایل می کنم
#include <iostream>
using namespace std;
//void sprint (int string[] , int k);
int compare(int n[] ,int m[],int nk ,int mk);
int n[5];
int main()
{
  for (int j=3;j<5;j++)
    n[j]=7;
   int m[2];
  m[0]=1;
  m[1]=6;
int roc=0;
roc=compare (n ,m ,5 ,2);
cout << roc<<endl;
return 0;
}
///newcompare
int comapre(int n[] ,int m[] ,int nk ,int mk)
{
  int rc;///return compare
  int ni;
  int mi;
  ni=mi=0;
  while (n[ni]==0)
    ni++;
  while(m[mi]==0)
    mi++;
  int non ,nom ;/// number of n and m!!
  non=nk-ni;
  nom=nk-mi;
  if (non>nom)
    rc=1;
  if (nom>non)
    rc=2;
  if (nom==non)
  {
    int i=0;
    while (i<=nom)/// farghi nemikone nom=non
    {
    if(n[ni+1]>m[mi+1])
    {
      rc=1;
      break;
    }
    if(m[mi+1]>n[ni+1])
    {
      rc=2;
      break;
    }
    if(n[ni+1]==m[mi+1])
    {
      ni++;
      mi++;
    }
    i++;
    if(i==nk)
    {
      rc=0;
      break;
    }
  }
  }
  return rc;
}
ممنون
عنوان: پاسخ به: خطای undefined reference
ارسال شده توسط: mahdisama در 14 فروردین 1389، 01:32 ق‌ظ
ارایه هاتو new کن ببین چی میشه  ::)
عنوان: پاسخ به: خطای undefined reference
ارسال شده توسط: سید وحید رضا برهانی در 14 فروردین 1389، 06:49 ق‌ظ
سلام
منظورت از new متغیر پویاست؟
عنوان: پاسخ به: خطای undefined reference
ارسال شده توسط: mozhdeh در 14 فروردین 1389، 10:20 ب‌ظ
وقتی آرایه m رو تعریف می‌کنید، متغیر m به اولین عضو آرایه اشاره می‌کنه. پس وقتی تابع compare رو با m و n صدا می‌زنید، برنامه دنبال تابعی می‌گرده که دو آرگومان اولش اشاره‌گر به int باشن. و چون تابع compare شما آرگومان‌هاش آرایه هستن، خطا می‌ده که این تابع پیدا نشده.
عنوان: پاسخ به: خطای undefined reference
ارسال شده توسط: mahdisama در 15 فروردین 1389، 12:53 ق‌ظ
اره منظورم همونه .
int* a = NULL;   // Pointer to int, initialize to nothing.
int n;           // Size needed for array
cin >> n;        // Read in the size
a = new int[n];  // Allocate n ints and save ptr in a.
for (int i=0; i<n; i++) {
    a[i] = 0;    // Initialize all elements to zero.
}
. . .  // Use a as a normal array
delete [] a;  // When done, free memory pointed to by a.
a = NULL;     // Clear a to prevent using invalid memory reference.
البته به جای n عدد هم میتونی بزاری ;D
عنوان: پاسخ به: خطای undefined reference
ارسال شده توسط: sisyphus در 15 فروردین 1389، 02:47 ق‌ظ
نقل‌قول
int comapre(int n[] ,int m[] ,int nk ,int mk)
{
compare باید باشه.
عنوان: پاسخ به: خطای undefined reference
ارسال شده توسط: سید وحید رضا برهانی در 15 فروردین 1389، 06:17 ق‌ظ
سلام
ممنون از دوستان
نقل‌قول
int comapre(int n[] ,int m[] ,int nk ,int mk)
{
compare باید باشه.
دقیقا دیشب خودمم دیدم کلی خندیدم