为什么Visual c++和c++给我的程序不同的输出?
Why do Visual C++ and g++ give different output for my program?
我写了一个c++代码,面对两个
首先,当我用两个不同的编译器(Visual c++和g++)编译以下代码时,它们为H[][]
矩阵创建不同的输出。
vc++得到的结果是正确的,而g++得到的H矩阵的结果是错误的。我在cygwin中使用g++ -O -o output myfile.cpp
我逐行检查我的代码,但我找不到原因。
第二,当我为x
和t
数组分配一个大的数字时(例如30),我的代码遇到一个错误。
全局变量,例如:
int n, m, beta;
初始化为0。然后,使用它们的值分配内存:
char *t = new char[n];
char *x = new char[m];
之后读取n
和m
,但假设t
和x
的大小与n
和m
的新值相对应,可以访问它们。您很可能最终访问超出范围的内存。
这是未定义的行为。
你需要做的是将t
和x
初始化为nullptr
,并在main
中为它们分配内存
char *t = nullptr;
char *x = nullptr;
int main()
{
cout << "Enter n (size of t);" << endl;
cin >> n;
cout << "Enter m (size of x):" << endl;
cin >> m;
// Allocate memory for t and x.
t = new char[n];
x = new char[m];
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词