阿斯顿风格 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 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码