我的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 me怪异的角色:

我做错了什么?
对于这些功能,我这样称呼它们:
//First menu
do{
switch (option){
case 1:
insertData(data);
setFirstTime(false);
mostrarResultados(data);
break;
case 2:
exit(0);
break;
}
} while (option == 0);
} 非常感谢您的帮助!
发布于 2016-11-20 19:08:42
我认为你最好用一个结构来保存数据。有点像
Struct data {
char nombre[32];
Char habitacion[32];
char cama[32];
}和malloc -- struct malloc(sizeof of ( struct data) * nr of struct)
发布于 2016-11-20 19:31:52
在用C或C++编程时,必须启用编译器警告,理解它们并正确修复它们。其他一切都是不负责任的。
在本例中,编译器将警告printf调用,因为您传递的参数类型(和数量)是错误的。
https://stackoverflow.com/questions/40708009
复制相似问题