- 论坛徽章:
- 0
|
本帖最后由 donotblock 于 2010-11-19 10:42 编辑
今天一之前的同事问我的问题:
a.h- typedef struct {
- char Message[20];
- int code;
- } MyData;
复制代码 a.c- #include <stdio.h>
- #include <string.h>
- #include "a.h"
- int getdata(void **p){
- MyData d1;
- strcpy(d1.Message,"aaabbbcccddd");
- d1.code = 5;
- (*p) = &d1;
- return 0;
- }
复制代码 b.c- #include <stdio.h>
- #include <string.h>
- #include "a.h"
- int main(void){
- MyData *p1 = NULL;
- getdata((void *)(&p1));
- printf("%s\n",p1->Message);
- return 0;
- }
复制代码 问我为什么不能正常输出
------------------------
附加新问题:
- int getint(void **P){
- int i = 10;
- (*p) = &i;
- return 0;
- }
- int getstring(void **p){
- char *s = "abcde";
- (*p) = s;
- return 0;
- }
- int getstring2(void **p){
- char s[] = "abcde";
- (*p) = s;
- return 0;
- }
复制代码 这3个呢,哪个ok,哪个不行,为什么? |
|