[Error] ld returned 1 exit status

di il
4 risposte

[Error] ld returned 1 exit status

Ciao ragazzi ho un problema di id retun 1, non vi è referenza alla funzione scambio_c:
ecco l' errore completo:
C:\Users\Giacomo\AppData\Local\Temp\cc40cWHx.o SenzaTitolo3.cpp:(.text+0x140): undefined reference to `scambiare_c(int*, int*)'

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include<string.h>
#include<ctype.h>
#define PEDINE 90
#define RIG 3
#define COL 9

void carica_bussollotto(int tombolino[PEDINE]) // riempie il bussolotto
{
	int i;
	
	for(i=0;i<PEDINE;i++)
	{
		tombolino[i]==(i+1);
	}
}
void estrazione(int tombolino[PEDINE]) //eseguo un estrazione dal bussolotto se ! da " " stampa il numero else rieseguo
{
	void ordina_tombolino(int tombolino[],int pedine_totali);
	int estrai=1+rand()%PEDINE;
	int i=0;
	int pedine_totali;
	int estratto=0;
	
	do
	{
		i++;
		printf("Il numero estratto è %d\n",estrai);
		if(tombolino[estrai]!=0) // se i di tombolino è diverso da vuoto o null
		{
			pedine_totali=PEDINE-i; // diminuisco il size dell' array
			tombolino[estrai]=0; // sostistuisco in numero con 0, in modo da non estrarlo
			ordina_tombolino( tombolino, pedine_totali);	// richiamo funzione ord per sel
		}		
		
	}while(pedine_totali == 0);
	
}
void ordina_tombolino(int tombolino[PEDINE], int totali_pedine ) // ordinamento per selezione di max per size decrescente
{
	void max_val_ind(int tombolino[], int n, int *max_array, int *i_max);
	void scambiare_c(int tombolino[], int array[]);
	int i,indice_max;
	int max_array;
	for(i=totali_pedine-1; i>0; i--)
	{
		max_val_ind(&tombolino[0],i+1,&max_array,&indice_max);
		scambiare_c(&tombolino[i],&tombolino[indice_max]);
	}
}
void max_val_ind(int tombolino[], int n, int *max_array, int *i_max)
{
	int i;
	*max_array= tombolino[0];
	*i_max=0;
	for(i=1;i<n;i++)
	{
		if(tombolino[i] > *max_array)
		{
			*max_array = tombolino[i];
			*i_max=1;
		}
	}
}
void scambiare_c(int **tombolino, int **array)
{
	int *temp;
	temp = *tombolino;
	*tombolino = *array;
	*array =  temp;
}

int main()
{
	int tombolino[PEDINE];
	char estrai;
	srand(time(NULL));
	
	carica_bussollotto(tombolino);
	
	do
	{ 
		printf("Vuoi estrarre un numero! S per Si N per NO\n"); // oltre a S accetto anche qualsiasi altro valore tranne N
		estrai=getchar();
		toupper(estrai);
		if(estrai=='S')
		{
			estrazione(tombolino);
		}
		if(estrai=='N')
		{
			printf("!!!Complimenti al vincitore!!!\n");
			break;
		}
		
	}while(estrai!='N'); // ciclo fin quando non è inserito il valore N
	
	
	system("PAUSE");
	return 0;
}

4 Risposte

  • Re: [Error] ld returned 1 exit status

    Questa chiamata
          scambiare_c(&tombolino[i],&tombolino[indice_max]);
    si aspetta una funzione che riceve due puntatori ad interi mentre tu hai scritto una funzione che si aspetta due puntatori a puntatore ad intero:
    void scambiare_c(int **tombolino, int **array)
  • Re: [Error] ld returned 1 exit status

    Giacomo .... se il compilatore 8o il linker9 ti segnala un errore in una funzione (in questo caso la scambiare_c), è proprio quella funzione che devi controllare, come è fatta e come la chiami. E subito individui il problema ...
  • Re: [Error] ld returned 1 exit status

    Grazie oregon , ma più che altro grazie a candaluar
  • Re: [Error] ld returned 1 exit status

    grazie oregon , ma più che altro grazie a candaluar
    In realtà dovresti ringraziare soprattutto oregon che ti ha spiegato qualcosa che non sapevi
Devi accedere o registrarti per scrivere nel forum
4 risposte