|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
//子程序调用时出现的一个非常奇怪的现象,谁能够解释呢
//如下程序中主程序main(),访问了子程序GetPointCoord()已释放的变量,这显然是逻辑错误
//但若将错就错,出现一种无法解释的问题
#include "stdafx.h"
#include "stdio.h"
typedef float (*vec3f)[3];
vec3f GetPointCoord()
{
float x[3]={1,8,4};
vec3f point=&x;
//若有下面这两条语句,程序运行N多次,每次都能够输出正确结果;
//但若没有下面这两条语句,运行N多次,没有一次能够得到正确结果,
//不知道这是为什么,有人能够解释吗
float *y=new float;
delete[] y;
return point;//
}
int main(int argc, char* argv[])
{
vec3f a=GetPointCoord();
float* c=*a;
float c0=c[0];
float c1=c[1];
float c2=c[2];
printf("%f\n%f\n%f\n ",c0,c1,c2);
return 0;
} |
|