0 的数组以 -85993460 而不是 0 的形式出现
array of 0's coming out as -85993460 instead of 0's
我有这个代码从vector.txt
文件中打印出矢量(1 2 3)
,但每当我运行该代码将矢量转换为matrix
时,填充matrix
的0
就会显示为-85993460
。请帮助
#include<iostream>
#include<conio.h>
#include <stdio.h>
using namespace std;
void main()
{
cout << "Loading vector.txt" << endl;
FILE *file = fopen("vector.txt", "r");
int vector[3];
int b = 0;
do{
fscanf(file, "%i", &vector[b]);
b++;
}while(feof(file) == 0);
//clear the screen.
fclose(file);
cout << "Loading matrix" << endl;
int a[3][3],i,j;
for(int i=0;i<3;i++)
{
for(b=0; b<3;b++);
a[0][i] = vector[i];
}
cout << " Vector rotation" << endl;
//Display the original matrix
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"Transpose of above matrix is: "<<endl;
//Display the transpose matrix
for(j=0;j<3;j++)
{
for(i=0;i<3;i++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
//get character
getch();
}
使用={}
0初始化矩阵:
int a[3][3] = {},i,j;
您没有初始化矩阵。for循环for(b=0; b<3;b++);
什么也不做,它下面的行只执行一次。如果您想执行该循环中的下一行或任何内容,请删除该for循环末尾的分号。
因为矩阵在循环中没有初始化,所以您正在读取垃圾值-85993460就是创建矩阵时堆栈上的内容。
我猜您有一个拼写错误,您未初始化的值更有可能显示为-858993460,这是十六进制0xCCCCCCCC,一个在调试模式下编译时用于填充未初始化内存的常见值。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '