- 论坛徽章:
- 0
|
本帖最后由 scgywx 于 2010-11-22 09:34 编辑
两个问题
1.就是之前有位仁兄说的变量生存周期的问题,局部变量过期,被回收后指针所指向的地址的值是不存在的。
2.就是main里面指针变量p1的问题,p1根本没有分配存放MyData的内存空间,他只是一个指向结构体的指针变量而已,所以要先定义变量来分配内存空间再用指针来操作。- #include "stdafx.h"
- #include <string.h>
- typedef struct {
- char Message[20];
- int code;
- } MyData;
- int getdata(void **p);
- int main(int argc, char* argv[])
- {
- MyData p;
- MyData *p1 = &p;
- getdata((void **)(&p1));
- printf("code=%d,Message=%s\n",p1->code,p1->Message);
- return 0;
- }
- int getdata(void **p)
- {
- ((MyData *)*p)->code = 10;
- strcpy(((MyData *)*p)->Message,"aaabbbcccddd");
- return 0;
- }
复制代码 |
|