如何从字符串数组中访问数据? 13 C

时间:2016-11-20 18:50:36

标签: c arrays

我的C代码存在很多问题。我使用此功能将数据保存到array

/**
* Insert Data into array
* @param char[] pointer
*/
void insertData(char **data) {
    int i;

for (i = 0; i < 2; i++) {
      data[i] = malloc(10000);
      printf("Nombre del paciente %d: ", i+1);
      scanf("%s", &data[i][0]);
      printf("Habitacion: ");
      scanf("%s", &data[i][1]);
      printf("Cama: ");
      scanf("%s", &data[i][2]);
      free(*data);
    }
}

我的变量数据是:char data[2][3];

我试图用下一个功能显示这些数据:

void mostrarResultados(char **data) {
int i,j;
for (i = 0; i < 2; i++) {
    printf("\n");
     for (j = 0; j < 3; j++) {
        printf("%c ", data[i,j], **data);
     }
    }
}

但控制台return我怪异的角色: enter image description here

我做错了什么?

对于这些函数,我这样称呼它们:

    //First menu
    do{
        switch (option){
            case 1:
                insertData(data);
                setFirstTime(false);
                mostrarResultados(data);
                break;
            case 2:
                exit(0);
                break;
        }
    } while (option == 0);
} 

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

我认为您最好使用结构来保存数据。喜欢

Struct data {
   char nombre[32];
   Char habitacion[32];
   char cama[32];
}

并且malloc结构malloc(sizeof(struct data)* nr你想要的结构)

答案 1 :(得分:0)

使用C或C ++编程时,必须启用编译器警告,理解它们并正确修复它们。其他一切都是不负责任的。

在这种情况下,编译器将警告printf调用,因为您传递的参数类型(和数量)错误。