i'm trying to save in usuarios_st->datos_carton->numero_cartonchar
a string, but i'm keep getting the segementation fault error, i'll paste the entire code here, please be gentle i'm new at C
and beforehand thanks for your attention and waiting for your reply.
main.c
int main(int argc, char **argv){
char *usuarios;
int ancho = atoi(argv[1]);
int alto = atoi(argv[2]);
int mul_AA = alto * ancho;
int condition = 0;
int numcartones = 0;
int h = 0;
int j = 0;
int con = 1;
int i = 0; //i = posición
do{
printf("%d\n", ancho);
printf("%d\n", alto);
int valor_menu = 0;
do{
printf("1- Introducir jugador\n");
printf("2- Mostrar Cartones\n");
printf("3- Salir\n");
scanf("%d", &valor_menu);
}while(valor_menu > 3 || valor_menu < 1);
struct carton_t *cartones = malloc(sizeof(struct carton_t));
struct usuario_t *usuarios_st = malloc(sizeof(struct usuario_t));
usuarios_st->datos_carton = cartones;
switch(valor_menu){
case 1:
condition = Introducir_jugador(&usuarios_st[i], mul_AA, &cartones[i], i);
if(condition == 0){
printf("números introducidos no validos\n");
con = 1;
}
break;
case 2:
while(cartones->numero_carton[h] != '\0'){
h++;
}
numcartones = h;
printf("numero de cartones %d\n", h);
for(int p = 0; p <= numcartones; p++){
Mostrar_cartones(&cartones[p], ancho, alto, p);
}
break;
case 3:
con = 0;
break;
default:
return(0);
break;
}
i++;
}while(con != 0);
}
宾果
#include"bingo.h"
int Introducir_jugador(struct usuario_t *usuarios_st, int mul_AA, struct carton_t *cartones, int i){
printf("\nNombre del Jugador: \n");
scanf("%s" , &usuarios_st->datos_nombre);
printf("%s\n", usuarios_st->datos_nombre);
printf("\nIntroduzca los numeros separados por comas y sin espacios: \n");/*Enter the numbers separated by commas and without spaces:*/
scanf("%s" , &(usuarios_st->datos_carton->numero_cartonchar));
cartones->numero_carton[i][0] = atoi(strtok(usuarios_st->datos_carton->numero_cartonchar, ","));
if(cartones->numero_carton[i][0] < 0 || cartones->numero_carton[i][0] > 99){
return(0);
}
for(int p = 1; p < mul_AA; p++){
cartones->numero_carton[i][p] = atoi(strtok(NULL, ","));
if(cartones->numero_carton[i][p] < 0 || cartones->numero_carton[i][0] > 99){
return(0);
}
}
}
void Mostrar_cartones(struct carton_t *cartones, int ancho, int alto, int p){
int x = 0;
while(cartones->numero_carton[x] != '\0'){
x++;
}
for(int g = 0; g < x; g++){
for(int z = 0; z <= alto; z++){
for(int n = 0; n <= ancho; n++){
printf("%d", cartones->numero_carton[p][g]);
}
printf("\n");
}
printf("\n\n");
}
}
宾果游戏
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct carton_t{
char *numero_cartonchar;
int *numero_marcado;
int **numero_carton;
};
struct usuario_t{
struct carton_t *datos_carton;
char datos_nombre[100];
};
int Introducir_jugador(struct usuario_t *usuarios_st, int mul_AA, struct carton_t *cartones, int i);
void Mostrar_cartones(struct carton_t *cartones, int ancho, int alto, int p);