Thread: Question?

  1. #1
    Registered User
    Join Date
    Aug 2001
    Posts
    30

    Question?

    #include <stdio.h>
    void load();
    void main()
    {
    char *data=malloc(1000);
    FILE *file;
    file=fopen("test.txt","r");
    while(!feof(file))
    {
    data=fgetc(file); // why dont it print without the pointer sign?
    data++;
    }
    printf("%c",data[1]);
    }

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,661
    data is the pointer which points to your allocated memory, so you definitely don't want to be modifying it.

    Code:
    int i = 0;
    int ch;
    while( (ch=fgetc(file)) != EOF ) {
        data[i++] = ch;
    }
    If you're going to use a char pointer, then you need to keep one pointing to the start of the allocated memory (data), and another to point to each new char in turn (temp)
    Code:
    char *temp = data;
    int ch;
    while( (ch=fgetc(file)) != EOF ) {
        *temp++ = ch;
    }

    > void main()
    main returns an int
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Alice....
    By Lurker in forum A Brief History of Cprogramming.com
    Replies: 16
    Last Post: 06-20-2005, 02:51 PM
  2. Debugging question
    By o_0 in forum C Programming
    Replies: 9
    Last Post: 10-10-2004, 05:51 PM
  3. Question about pointers #2
    By maxhavoc in forum C++ Programming
    Replies: 28
    Last Post: 06-21-2004, 12:52 PM
  4. Question...
    By TechWins in forum A Brief History of Cprogramming.com
    Replies: 16
    Last Post: 07-28-2003, 09:47 PM
  5. Question, question!
    By oskilian in forum A Brief History of Cprogramming.com
    Replies: 5
    Last Post: 12-24-2001, 01:47 AM