[RISOLTO] stack smashing detected

C, C++, Java, ...

[RISOLTO] stack smashing detected

Messaggioda lcproductions » 18/01/2018, 22:49

Salve a tutti,
ho creato un programma che calcola le tabelline da 1 a 10 .
Il programma funziona, tuttavia quando esce stampa il messaggio
Codice: Seleziona tutto
*** stack smashing detected ***: <unknown> terminated
Annullato (core dump creato)


Dalle ricerche che ho fatto, è una protezione che gcc usa per evitare i buffer overflow .
Analizzando il programma, però, non riesco a capire dove si trovi il problema.
Vi lascio il codice sorgente. Grazie in anticipo a quanti risponderanno.
Codice: Seleziona tutto
/*
Calcolo delle tabelline
*/

#include <stdio.h>

int main() {
  int tab[10][10];
  int num,fatt; // num = numero della tabellina; fatt = numero per cui moltiplicare num. Es. se num = 5 e fatt = 7, allora num*fatt = 35
  for (num=1;num<=10;num++) {
    if (num == 1) {
      printf("--------------- TABELLINA DELL\' UNO -------------\n");
    }else if(num == 2){
      printf("--------------- TABELLINA DEL DUE -------------\n");
    }else if (num == 3) {
      printf("--------------- TABELLINA DEL TRE -------------\n");
    }else if(num == 4){
      printf("--------------- TABELLINA DEL QUATTRO -------------\n");
    }else if (num == 5) {
      printf("--------------- TABELLINA DEL CINQUE -------------\n");
    }else if(num == 6){
      printf("--------------- TABELLINA DEL SEI -------------\n");
    }else if(num == 7){
      printf("--------------- TABELLINA DEL SETTE -------------\n");
    }else if (num == 8) {
      printf("--------------- TABELLINA DELL\' OTTO -------------\n");
    }else if(num == 9){
      printf("--------------- TABELLINA DEL NOVE -------------\n");
    }else if (num == 10) {
      printf("--------------- TABELLINA DEL DIECI -------------\n");
    }
    for(fatt=0;fatt<=10;fatt++){
      tab[num][fatt] = num*fatt;
      printf("%d\n", tab[num][fatt]);
    }
  }
  return 0;
}
Ultima modifica di lcproductions il 21/01/2018, 23:05, modificato 1 volta in totale.
Spesso l'informatica è più un'arte che una scienza
lcproductions
Jr. Member
Jr. Member
 
Messaggi: 59
Iscritto il: 30/12/2015, 22:07

Re: stack smashing detected

Messaggioda marcomg » 19/01/2018, 7:11

Il for vai da 0 a 10, sono 11 numeri. Dovresti mettere < e basta e poi num*(fatt + 1)
Windows is what you open when you want fresh air from outside.
Avatar utente
marcomg
Global Moderator
Global Moderator
 
Messaggi: 5534
Iscritto il: 22/08/2011, 18:54

Re: stack smashing detected

Messaggioda lcproductions » 21/01/2018, 23:04

Grazie mille, risolto.
Spesso l'informatica è più un'arte che una scienza
lcproductions
Jr. Member
Jr. Member
 
Messaggi: 59
Iscritto il: 30/12/2015, 22:07


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron