我有一个2维的数组,并且当我第一次打印数组的数据时,日期打印正确,但其他时间的数组[数组] [数据]来自i = 0到最后 - 1.内存的值更改未经许可
显然是一个逻辑错误,但我不明白原因,因为我复制并粘贴for语句。那么...... C改变数据?
我使用gcc -std=c99
但在此之前,我尝试使用C++和cout
语句。
#include <stdio.h>
int main(int argc, char *argv[])
{
unsigned int numero_jugaderes = 11;
unsigned int numero = numero_jugaderes - 1;
unsigned int p_a[numero];
float p_aya[numero][numero];
for (unsigned int i = 0; i <= numero; i++) {
p_a[i] = i;
}
for (unsigned int i = 0; i <= numero; i++) {
for (unsigned int j = 0; j <= numero; j++) {
p_aya[i][j] = (float) (p_a[i] * p_a[j])/100;
printf("%f\t", p_aya[i][j]);
}
puts("");
}
puts("\n");
for (unsigned int i = 0; i <= numero; i++) {
for (unsigned int j = 0; j <= numero; j++) {
printf("%f\t", p_aya[i][j]);
}
puts("");
}
return 0;
}
即在技术上是不是一个有效的C++程序,由于C++没有[可变长度数组(https://en.wikipedia.org/wiki/Variable-length_array)。 –
@user我想这是相反的 –
至于你的问题,请记住,X元素的数组,具有有效的索引范围'0'到'X - 1'(含)。现在仔细看看你的循环。 –