我有以下代码.
#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
怎么会这样?本地变量的内存不能在其功能之外无法访问吗?
这似乎是一个简单的问题,但我无法通过Stack Overflow搜索或Google找到它.什么类型后跟一个_t意思?如
int_t anInt;
Run Code Online (Sandbox Code Playgroud)
我在C代码中看到很多意味着与硬件紧密相关 - 我不禁认为它们是相关的.
char *xyz()
{
char str[32];
strcpy(str,"Hello there!");
return(str);
}
void main()
{
printf("%s",xyz());
}
Run Code Online (Sandbox Code Playgroud)
当我调用xyz()时,是否会返回一个悬空指针?谢谢