请教一个弱智问题,关于指针转换的

Developerljm 2003-06-16 05:59:52
如何把一个整数转换为指针?
怎样处理函数setInfo中的代码?下面代码:

#include <stdio.h>
#include <malloc.h>
#include <string.h>

typedef struct _tagInfo{
char* name ;
int age;
}sINFO;

void setInfo(long l){
sINFO inf;
//inf = (sINFO)(*(void*)l);
//to do
printf("The name: %s",inf.name);//得不到预想的结果啊!
}

main(){
sINFO* s;
s = (sINFO*)malloc(sizeof(sINFO));
s->age=26;
s->name = malloc((sizeof(char)*3));
strcpy(s->name,"jim");
setInfo((long)&s);
free(s->name);
free(&s);
}
...全文
26 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Developerljm 2003-06-16
  • 打赏
  • 举报
回复
如果使用这个语句setInfo(long(&s)),那么函数该怎么写啊?
taozhangzhi9 2003-06-16
  • 打赏
  • 举报
回复
s->name = malloc((sizeof(char)*3)); //3应修改为4哦,越界!
。free(&s); //free(s).
3. sInfo inf;// 应为sINFO * inf;
4. inf = (sINFO *)l;


zteliubin 2003-06-16
  • 打赏
  • 举报
回复
If the 's' is a pointer, you doesn't need reference '&' anymore

但是:借人家的东西还是要还的吧(free),:)
zteliubin 2003-06-16
  • 打赏
  • 举报
回复
问题不少哦,刚入门吧,兄弟:
1。s->name = malloc((sizeof(char)*3)); //3应修改为4哦,越界!
2。free(&s); //free(s).
3. sInfo inf;// 应为sINFO * inf;
4. inf = (sINFO *)l;


Afo1st 2003-06-16
  • 打赏
  • 举报
回复
If the 's' is a pointer, you doesn't need reference '&' anymore.
doer_ljy 2003-06-16
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <malloc.h>
#include <string.h>

typedef struct _tagInfo{
char* name ;
int age;
}sINFO;

void setInfo(long l){
sINFO * inf;
inf = (sINFO *)l;
printf("The name: %s",inf->name);//得不到?想的?果?!
}

main(){
sINFO* s;
s = (sINFO*)malloc(sizeof(sINFO));
s->age=26;
s->name = (char *)malloc((sizeof(char)*3));
strcpy(s->name,"jim");
setInfo((long)s);
free(s->name);
free(&s);
}
Afo1st 2003-06-16
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <malloc.h>
#include <string.h>

typedef struct _tagInfo{
char* name ;
int age;
}sINFO;

void setInfo(long l){
sINFO* inf;
inf = (sINFO*)l;
//to do
printf("The name: %s",inf->name);}

main(){
/*
sINFO* s;
s = (sINFO*)malloc(sizeof(sINFO));
s->age=26;
s->name = (char*)malloc((sizeof(char)*3));
strcpy(s->name,"jim");
setInfo((long)&s);
free(s->name);
free(&s);
*/
sINFO s;
s.age = 26;
s.name = "abc";
setInfo( ( long )&s );
return 0;
}

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧