首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符指针未打印正确的值

字符指针未打印正确的值
EN

Stack Overflow用户
提问于 2014-11-11 17:49:56
回答 1查看 113关注 0票数 0
代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "full_regr.h"

int full_regr()
{
    struct commands *s1=NULL;      
    s1 = (struct commands *)malloc(sizeof(struct commands));        
    Char *token1;
    Char *token2;        
    char *char_frequency_cat;   
    char *frequency_array[100];

    for(j=0;j<=24;j++)
    {   
        token1=strtok(s1->frequency[j],".");  
        token2=strtok(NULL,".");            //rhs of frequency
        if(!token2) //If decimal not placed in frequency
        {
            printf("\t\tFrequencySSM......:==== %s\n",s1->frequency[1]);**     /// it will print 1025
            token1 = strcat(s1->frequency[j],"000000");
            printf("\t\tFrequencySSM......:==== %s\n",s1->frequency[1]);     // it will print 00000
            char_frequency_cat= token1;
            printf("\t\tin if char_freq: %s\n",char_frequency_cat);
        }            

    }
}        

输出为: s1->frequency=1012 s1->requency1=0000/值应为1025

我正在尝试从input.txt文件中读取频率的值。我们在频率中使用的格式是FREQ 1012,1025;,整个代码都在for循环中,因此每个频率都可以一个接一个地读出并用于进一步的处理,所以问题是,对于第一个频率,即1012,它是工作的,但是当涉及到strcat(s1->frequency[j])时,第二个频率变成零,如果我增加,即第三个频率,我什么也得不到。结构中定义的char *frequency[1000]

EN

回答 1

Stack Overflow用户

发布于 2014-11-11 20:23:14

s1指向由malloc分配的内存。这未初始化。

使用strtok解析未初始化的内存会产生未定义的行为。如果你想阅读文件"input.txt“,你应该打开并阅读它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26861936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档