2014-11-11 3 views
0
#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-> частота [0] = 1012 S1-> частота [1] = 0000 /// значение должно быть 1025символ указателя не печатает правильное значение

Я пытаюсь для чтения значения частоты из файла input.txt. Формат, который мы использовали в частоте: FREQ 1012,1025; Весь этот код находится в цикле цикла, так что одна за другой каждая частота может быть считана и использована для дальнейшего процесса, поэтому проблема в том, что для первой частоты, т.е. 1012, она работает, но поскольку она приходит к strcat(s1->frequency[j]), вторая частота становится нулевой, а если я увеличиваю, т.е. 3-я частота, я ничего не получаю. char *frequency[1000], определенные в строении

+0

Каково определение 'struct commands'? И вы подумали о том, где этот вызов 'strcat()' помещает конкатенированную строку? – AAT

+0

struct commands { \t \t char * частота [1000]; }; – ABC

+0

Я использовал strcat, так как хочу добавить шесть нулей для частоты в МГц. и значение strcat будет сохранено в токене1. Я помещаю printf между каждой строкой, чтобы проверить – ABC

ответ

1

s1 указывает на память, выделенную malloc. Это неинициализировано.

Анализ неинициализированной памяти с помощью strtok дает неопределенное поведение. Если вы хотите прочитать файл «input.txt», вы должны его открыть и прочитать.

+0

Я дал вам только часть кода. я сделал intialization, прочитал и откройте файл input.txt. – ABC

Смежные вопросы