Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Bus Error: 10
Forum - C/C++ - Bus Error: 10

Avatar
Umberto (Member)
Pro


Messaggi: 156
Iscritto: 27/09/2011

Segnala al moderatore
Postato alle 17:12
Sabato, 16/02/2013
Non riesco a capire perchè quando eseguo questo codice
Codice sorgente - presumibilmente C++

  1. //
  2. //  jsvm.c
  3. //  
  4. //
  5. //  Created by UZ on 16/02/13.
  6. //
  7. //
  8.  
  9. #include <stdio.h>
  10. #include <string.h>
  11. #define TAB_ELEMENT_N 100
  12. int tab_one_index = 0;
  13. int iindex = 0;
  14. int test = 0;
  15. char jsvm[110][110];
  16. void (*ptrf) ();
  17. typedef struct rec1 {
  18.     char one[50];
  19.     void (*ptf)();
  20. }collum_T1;
  21.  
  22. collum_T1 tab_one[TAB_ELEMENT_N];
  23.  
  24. typedef struct rec2 {
  25.     char one[50];
  26.     char two[1000];
  27. }collum_T2;
  28.  
  29. collum_T2 tab_two[TAB_ELEMENT_N];
  30. #include "comand.h"
  31. int main() {
  32.     strcpy(jsvm[0],"hello");
  33.     strcpy(jsvm[1],"var");
  34.     strcpy(jsvm[2],"end");
  35.     while (1){
  36.         test = 0;
  37.         while (strcmp(tab_one[tab_one_index].one,jsvm[iindex])!=0){
  38.             tab_one_index++;
  39.         }
  40.         if(strcmp(tab_one[tab_one_index].one,jsvm[iindex])!=0){
  41.             ptrf = tab_one[tab_one_index].ptf;
  42.             ptrf();
  43.         }
  44.         iindex++;
  45.         if(strcmp("end",jsvm[iindex])!=0){
  46.  
  47.             break;
  48.         }
  49.     }
  50.     return 0;
  51. }


Compilato senza problemi , mi restituisce "Bus Error: 10"
grazie in anticipo Umberto

Ultima modifica effettuata da Umberto il 16/02/2013 alle 17:12
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 18:46
Sabato, 16/02/2013
Questo:

Codice sorgente - presumibilmente C/C++

  1. while (strcmp(tab_one[tab_one_index].one,jsvm[iindex])!=0){
  2.             tab_one_index++;
  3.         }



Viene eseguito all'infinito. Presta inoltre attenzione a come inizializzi le tue variabili e strutture, il compilatore non lo fara' necessariamente per te. Non dimenticarti inoltre il terminatore NULL per le tue stringhe:

Codice sorgente - presumibilmente Plain Text

  1. strcpy(jsvm[0],"hello\0");
  2.     strcpy(jsvm[1],"var\0");
  3.     strcpy(jsvm[2],"end\0");



Il mio blog: https://piero.dev
PM Quote
Avatar
Umberto (Member)
Pro


Messaggi: 156
Iscritto: 27/09/2011

Segnala al moderatore
Postato alle 1:28
Domenica, 17/02/2013
grazie mille Piero ora funziona :hail:

PM Quote