小编Nic*_*ova的帖子

C++ typedef枚举,只是枚举

究竟有什么区别:

typedef enum {
  something1,
  something2,
  .....
  somethingN
} myEnum;
Run Code Online (Sandbox Code Playgroud)

结束了

enum myEnum{
  something1,
  something2,
  .....
  somethingN
};
Run Code Online (Sandbox Code Playgroud)

我知道在第一种情况下我有typedefed未命名的枚举,当然,只是想知道哪种方法更好,为什么?

c++ typedef

9
推荐指数
2
解决办法
3万
查看次数

损坏调用堆栈的C/C++代码

是否有可能通常的代码在c/c ++中损坏调用堆栈?我不是指某种黑客或某种东西,只是一种疏忽的错误或其他东西,而不是随意的,这样每次都会损害它.有人告诉我,一位前同事管理但我不认为这是可能的.有人有这样的经历吗?

c++ callstack

3
推荐指数
2
解决办法
276
查看次数

函数和返回const char*

const char* test(bool i)
{
    const char t[] = "aa\n";
    const char* p = "bbb\n";
    if(i)
        return p;
    return t;
}
int main(array<System::String ^> ^args)
{
     printf(test(true));
     printf(test(false));
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

这会返回一些东西:

 bbb
 %^&$^$%
Run Code Online (Sandbox Code Playgroud)

很明显,test(false)返回一个指向局部变量的指针.问题是p也是局部变量.为什么在函数返回后没有清除"bbb \n"的内存.我认为const char []的解释方式与const char*相同,但它看起来并不正确.

arrays c++-cli constants char

2
推荐指数
1
解决办法
781
查看次数

标签 统计

c++ ×2

arrays ×1

c++-cli ×1

callstack ×1

char ×1

constants ×1

typedef ×1