#include <iostream>
#include <time.h>
int main()
{
using namespace std;
time_t t1,t2;
struct tm *p1,*p2;
t1 = time(0);
p1 = localtime(&t1);
cout << p1 << "," << p2 << endl;
t2 = t1 - 24*3600;
p2 = localtime(&t2); //这句为什么会改变p1的指针?
cout << p1 << "," << p2 << endl;
cout << p1->tm_year+1900 << "-" << p1->tm_mon+1 << "-" << p1->tm_mday << endl;
cout << p2->tm_year+1900 << "-" << p2->tm_mon+1 << "-" << p2->tm_mday << endl;
}
执行结果:
0xd32300,0xbfe2ad08
0xd32300,0xd32300
2010-5-9
2010-5-9
我想问一下,为什么把p1指针的地址改变了呢?
p2 = localtime(&t2)在这之前没使用 是个野指针指向的是任意地址
执行以后P2得到localtime的返回值
0xd32300,0xbfe2ad08
0xd32300,0xd32300
前面那个是p1啊,不是没有改变吗?
p1的地址改变了吗
抱歉,我是指p2的指针为什么会改变为p1的指针?
第一个指针是没经过初始化就使用.得出来的是一个"垃圾值".
vs2010上运行的结果.结果出来前提示错误
00591410,CCCCCCCC
00591410,00591410
2010-5-11
相关问答:
写了个测试程序如下
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。
不会.
运行java程序
找工具查看一下那个程序的命令行
搜索下:jni ......
在根目录/lib中存放一个log.c,log.h,并用下面的语句:
gcc -c log.c
ar crv liblog.a log.o
编译出一个liblog.a静态库,然后在文件夹:/testfile中创建一个test.c和testc.c,test.c中引用了testc.c中定义的方法 ......
谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......