循环后损坏的2D字符数组

时间:2016-03-16 15:48:10

标签: c multidimensional-array char

我正在写一个简单的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]);

0 个答案:

没有答案