我正在写一个简单的C程序,我得到了一直在下雨的地方(lugares)的名字,这只是一个练习练习,事情就是那个循环之后的某个地方我获得pluviosity(pluviosidad)的数量,2d char数组的地方(lugares)被破坏,它的第一个元素丢失了它的内容并最终变成了垃圾,我一直在想为什么在过去的4个小时内发生这种情况解决这个问题,我不明白为什么会这样。任何帮助都将受到高度赞赏,提前谢谢!
PD:据我所知,2D Char数组就像这样[sizeofthearray] [lengthofeachelement],所以我不知道我是不是以某种方式使这个阵列不稳定,因为我和#39;我只是使用%-10s来格式化输出。它的内容长度甚至不超过12-15个字符我放置25个以防万一我需要更多的时候进行评估。
const int nDias = 5;
const int nLugares = 3;
int i, j;
// Arrays Creation
char lugares[nLugares][25];
float pluviosidad[nLugares][nDias];
// A) Data loading
for (i = 0; i<nLugares; i++){
printf("Ingrese el Nombre del Lugar %d:\n", i + 1);
gets_s(lugares[i]);
fflush(stdin);
}
// Somehow after these 2 cycles finish, the "lugares" 2d char array gets corrupted. (I noticed this when doing a debugging session in visual studio)
for (i = 0; i<nLugares; i++){
system("cls");
for (j = 0; j<nDias; j++){
printf("Ingrese pluviosidad para %s en el dia %d: ", lugares[i], j + 1);
scanf_s("%f", &pluviosidad[j][i]);
}
}
// Output Data
printf("\t\tLugares\n");
printf("%-10s", "Dias");
// and here I try to see its contents and in this case of 3 elements on the lugares 2d char array, the first element loses its contents and ends up with garbage.
for (i = 0; i<nLugares; i++)
printf("%-26s", lugares[i]);