小编Lig*_*ica的帖子

为什么我的 C++ 程序会在我忘记 return 语句时崩溃,而不仅仅是返回垃圾?

我最近开始使用 CLang 来编译嵌入式 C++ ARM 程序。

在此之前,我使用 GCC 和 C,几乎专门用于嵌入式工作。

我注意到当我有一个返回值的方法时,我忘记了 return 语句,程序核心转储。除了来自我的设备驱动程序之一的“msleep error -1”之外,没有打印任何错误。这是在 FreeBSD 上。

我希望忘记 return 语句只会导致函数返回垃圾,而不是核心转储。

编辑:我要返回一个布尔值,而不是指针或对象或任何复杂的东西。即使返回值无关紧要,程序也会崩溃。

到底是怎么回事?

例如:

bool MyClass::DummyFunc() {
  <do some stuff and forget the return value>     
}
Run Code Online (Sandbox Code Playgroud)

别处:

if(pMyObj->DummyFunc()) {
  print ("Hey, it's true!\n");
} else {
  print ("Darn, it's false!\n");
}
Run Code Online (Sandbox Code Playgroud)

无论返回值如何,该代码都不应崩溃。

c++ freebsd llvm clang llvm-clang

-6
推荐指数
1
解决办法
629
查看次数

c ++中2d向量的问题

有没有相关的问题

vector< vector<int> > v(m, vector<int>(n));
Run Code Online (Sandbox Code Playgroud)

写得更安全:

vector< vector<int> > v(m);
for (size_t i=0; i<m; i++)
    v[i].resize(n);
Run Code Online (Sandbox Code Playgroud)

c++ stdvector

-6
推荐指数
1
解决办法
97
查看次数

未在此范围内声明(C++中的数组)

我是C++编程的初学者我有一个文本文件,其中有100万个素数用空格分隔.我想把它们放在一个int数组primes []中.以下是我写的代码:

int main()
{
    ifstream infile;
    infile.open("C:/Users/DELL/Desktop/primes1.txt");

    //check for error
    if(infile.fail()){cerr<<"Error Opening File"<<endl;
    exit(1);}
    int i=0;
    primes = new int[1000001];
    while(i != infile.eof()){
        infile>>primes[i];
        i++;
    }

    cout<<  primes[4]  <<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我构建并运行时,它会出现以下错误:

"错误:'primes'未在此范围内声明"

这是什么解决方案?

c++ arrays error-handling text file

-8
推荐指数
2
解决办法
454
查看次数

找到输出?

这是我们的一次考试中提出的问题.解释以下代码的输出......

#include <stdio.h>

int main(void)
{
   int i = 320;
   char *ptr = (char *)&i;
   printf("%d", *ptr);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers

-13
推荐指数
1
解决办法
75
查看次数

标签 统计

c++ ×3

arrays ×1

c ×1

clang ×1

error-handling ×1

file ×1

freebsd ×1

llvm ×1

llvm-clang ×1

pointers ×1

stdvector ×1

text ×1