Oppure

Loading
16/02/13 16:12
Umberto
Non riesco a capire perchè quando eseguo questo codice
//
//  jsvm.c
//  
//
//  Created by UZ on 16/02/13.
//
//

#include <stdio.h>
#include <string.h>
#define TAB_ELEMENT_N 100
int tab_one_index = 0;
int iindex = 0;
int test = 0;
char jsvm[110][110];
void (*ptrf) ();
typedef struct rec1 {
    char one[50];
    void (*ptf)();
}collum_T1;

collum_T1 tab_one[TAB_ELEMENT_N];

typedef struct rec2 {
    char one[50];
    char two[1000];
}collum_T2;

collum_T2 tab_two[TAB_ELEMENT_N];
#include "comand.h"
int main() {
    strcpy(jsvm[0],"hello");
    strcpy(jsvm[1],"var");
    strcpy(jsvm[2],"end");
    while (1){
        test = 0;
        while (strcmp(tab_one[tab_one_index].one,jsvm[iindex])!=0){
            tab_one_index++;
        }
        if(strcmp(tab_one[tab_one_index].one,jsvm[iindex])!=0){
            ptrf = tab_one[tab_one_index].ptf;
            ptrf();
        }
        iindex++;
        if(strcmp("end",jsvm[iindex])!=0){

            break;
        }
    }
    return 0;
}

Compilato senza problemi , mi restituisce "Bus Error: 10"
grazie in anticipo Umberto
Ultima modifica effettuata da Umberto 16/02/13 16:12
aaa
16/02/13 17:46
pierotofy
Questo:

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


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:

   strcpy(jsvm[0],"helloQuesto:


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


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:

   strcpy(jsvm[0],"hello{parsed_message}");
    strcpy(jsvm[1],"var{parsed_message}");
    strcpy(jsvm[2],"end{parsed_message}");
"); strcpy(jsvm[1],"varQuesto:

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


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:

   strcpy(jsvm[0],"hello{parsed_message}");
    strcpy(jsvm[1],"var{parsed_message}");
    strcpy(jsvm[2],"end{parsed_message}");
"); strcpy(jsvm[2],"endQuesto:

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


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:

   strcpy(jsvm[0],"hello{parsed_message}");
    strcpy(jsvm[1],"var{parsed_message}");
    strcpy(jsvm[2],"end{parsed_message}");
");
Il mio blog: piero.dev
17/02/13 0:28
Umberto
grazie mille Piero ora funziona :hail:
aaa