阿斯顿风格 2013-10-20 13:59 采纳率: 100%
浏览 1965
已采纳

一个链表问题 是关于链表添加的 但是周围的人每人能看出来问题

#include "common.h"
#include "config.h"
CONFIG_INFO_S srccon={0,NULL,NULL} ;

int vipp_config_add(char *buf)

{
char *delim= "=\n";
CONFIG_NODE_S plist;
strcpy(plist.key ,strtok(buf,delim));
strcpy(plist.value,strtok(NULL,delim));
if(srccon.head==NULL)
{
srccon.head=srccon.tail=&plist;
printf("1 printf is %s,value is %s\n",srccon.head->key,srccon.head->value);
}
else
{
srccon.tail->next =&plist;
srccon.tail=&plist;
printf("2 printf is %s,value is %s\n",srccon.tail->key,srccon.tail->value);
}
srccon.tail->next=NULL;
srccon.confignum++;
memset(buf,0,1024);
return 0;
}

int vipp_config_travser()
{
FILE *fp;
char buf[1024]={0};
strcpy(buf,"en.conf");
if(buf == NULL)
{
// printf("no this file\n");
exit (-1);
}
fp = fopen(buf,"r");
if(fp == NULL)
{
perror("fopen");
exit (-1);
}
while(fgets(buf,1024,fp))
{
vipp_config_add(buf);
}
return 0;
}
void travel()
{
CONFIG_NODE_S *plist=srccon.head;
while(plist!=NULL)
{
printf("key = %s,value = %s\n",plist->key,plist->value);
plist= plist->next;
}
}
主函数是
int main(void )
{
char tem[32]={0};
struct _config_node pre;
strcpy(tem,"config.cof");
vipp_config_travser();
travel();

return 0;

}要便利的文本是这个样子的:welcomepro=Welcome
ipaddr=HostIPAddress
bcast=HostBcastAddress
nick=HostNickname
status=HostStatus
online=OnlineDevices
call=calls
message=messages
callwith=Callingwith
consolempt=vipp
nickname=OllyDbg
scaninter=2
autorecord=0
但是我怎么也找不到自己出错在哪里,打印的结果完全不对,望诸位大神不吝赐教

  • 写回答

1条回答 默认 最新

  • 阿斯顿风格 2013-10-21 11:30
    关注

    #include "common.h"
    #include "config.h"
    CONFIG_INFO_S srccon={0,NULL,NULL} ;

    int vipp_config_add(char *buf)

    {
    char delim= "=\n";
    *
    *****CONFIG_NODE_S plist; 问题在这里 由于这个是固定的地址 而且在不断地调用,其地址是一直不变的,所以每次虽然添加了,但是都会被下一次覆盖,所以,到了最后一直都是一个。
    呵呵,以后切记,地址问题,内存分配特别重要

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案