相关疑难解决方法(0)

可以在其范围之外访问局部变量的内存吗?

我有以下代码.

#include <iostream>

int * foo()
{
    int a = 5;
    return &a;
}

int main()
{
    int* p = foo();
    std::cout << *p;
    *p = 8;
    std::cout << *p;
}
Run Code Online (Sandbox Code Playgroud)

而代码只是运行而没有运行时异常!

输出是 58

怎么会这样?本地变量的内存不能在其功能之外无法访问吗?

c++ memory-management local-variables dangling-pointer

990
推荐指数
19
解决办法
26万
查看次数

类型后跟_t(下划线-t)代表什么?

这似乎是一个简单的问题,但我无法通过Stack Overflow搜索或Google找到它.什么类型后跟一个_t意思?如

int_t anInt;
Run Code Online (Sandbox Code Playgroud)

我在C代码中看到很多意味着与硬件紧密相关 - 我不禁认为它们是相关的.

c types naming-conventions

240
推荐指数
9
解决办法
8万
查看次数

C悬空指针问题

char *xyz()
{
   char str[32];
   strcpy(str,"Hello there!");
   return(str);
}


void main()
{
  printf("%s",xyz());
}
Run Code Online (Sandbox Code Playgroud)

当我调用xyz()时,是否会返回一个悬空指针?谢谢

c

5
推荐指数
2
解决办法
815
查看次数