RISOLTO Segmation Fault(Core dumped)

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Matteo34

Nuovo Utente
Messaggi
104
Reazioni
3
Punteggio
45
Questa maledetta memoria!!!!!!!
Piccolo problemino stupido di scuola, logicamente l'ho risolto ma il problema e che il compilatore restituisce un errore abbastanza grave, anche se io non ne vedo, potreste dargli un occhiata.
Grazie : )
C:
#include<stdio.h>

int countTriplet(int *arr, int n)
{
        int triplets = 0;
      
        for(int i = 0; i < n; i++)
        {
                for(int j = (i+1); j < n; j++)
                {
                    if(*(arr+i) + *(arr+j) == *(arr+2))
                        triplets++;
                        break;
                }
        }
      
        for(int i = (n-1); i >= 0; i++)
        {
                for(int j = (i-1); j >= 0; j++)
                {
                    if(*(arr+i) + *(arr+j) == *(arr+1))
                        triplets++;
                        break;
                }
        }
      
        return triples;
      
}

int main(void)
{
     int arr[4] = {1, 5, 3, 2};

     printf("%d", countTriple(arr, 4));
}
 
Questa maledetta memoria!!!!!!!
Piccolo problemino stupido di scuola, logicamente l'ho risolto ma il problema e che il compilatore restituisce un errore abbastanza grave, anche se io non ne vedo, potreste dargli un occhiata.
Grazie : )
C:
#include<stdio.h>

int countTriplet(int *arr, int n)
{
        int triplets = 0;
    
        for(int i = 0; i < n; i++)
        {
                for(int j = (i+1); j < n; j++)
                {
                    if(*(arr+i) + *(arr+j) == *(arr+2))
                        triplets++;
                        break;
                }
        }
    
        for(int i = (n-1); i >= 0; i++)
        {
                for(int j = (i-1); j >= 0; j++)
                {
                    if(*(arr+i) + *(arr+j) == *(arr+1))
                        triplets++;
                        break;
                }
        }
    
        return triples;
    
}

int main(void)
{
     int arr[4] = {1, 5, 3, 2};

     printf("%d", countTriple(arr, 4));
}
Secondo for, dovresti decrementare sia i che j, altrimenti ovviamente richiederesti l'accesso a parti di memoria non allocate
 
Secondo for, dovresti decrementare sia i che j, altrimenti ovviamente richiederesti l'accesso a parti di memoria non allocate
Che sbadato, la cosa divertente e che mentra scrivevo la tabella di traccia sul foglio li decrementavo. grazie
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top