Jump to content
  • Advertisement

HelloSkitty

Member
  • Content count

    59
  • Joined

  • Last visited

Community Reputation

152 Neutral

About HelloSkitty

  • Rank
    Member
  1. HelloSkitty

    Printf acting weird

    Thanks for all the fast responses!  Fixed it and it works now - I should probably be thankful my compiler/runner is in safe mode :D
  2. HelloSkitty

    Printf acting weird

    I am trying to debug a program in order to find the cause of a segmentation fault.  So I commented all of the code and slowly uncommented from the start to find the location of the segmentation fault.  This was successful and I have discovered the function that is causing it.  Then, I decided to add a printf to the start of that function, and oddly enough nothing printed.  I then added printf to the calling function, and nothing printed there either.  So in the same manner of finding the location of the segmentation fault, I set about finding the place my program stopped printing.  And I did.  It was the line:   retVal->maxSize=10;   And I have no idea why.  All of the relevant code is here:   circular.h typedef struct Quote { unsigned int time; double rate; } quote; typedef struct CBuf { unsigned int maxSize; unsigned int size; unsigned int first; unsigned int last; quote* arrayPointer; } cbuf; cbuf* cbuf_init(); void cbuf_delete(cbuf* cb_ptr); void cbuf_update(cbuf* cb_ptr,unsigned int time,double rate); double cbuf_average(cbuf* cb_ptr); quote* cbuf_start(cbuf* cb_ptr); quote* cbuf_end(cbuf* cb_ptr); void cbuf_dump(cbuf* cb_ptr); void cbuf_stats(cbuf* cb_ptr);   circular.c #include "circular.h" #include <stdlib.h> #include <stdio.h> cbuf* cbuf_init() { printf("cbufinit\n"); cbuf* retVal; printf("makingretval\n"); printf("%d\n",(*retVal).maxSize); retVal->maxSize=10; printf("9\n"); retVal->size=0; retVal->first=0; retVal->last=0; quote* quotes=malloc(10*sizeof(quote)); retVal->arrayPointer=quotes; return retVal; } // More code below, but this is the only function that is called // makingretval and -72537468 are printed // 9 is not printed   main6a.c #include <stdio.h> #include <stdlib.h> #include "circular.h" int main() { printf("start\n"); printf("1\n"); cbuf *cb1 ; printf("2\n"); cb1 = cbuf_init() ; printf("3\n"); return 0 ; } // 1 and 2 are printed // 3 is not printed     Everything compiles fine, it is simply that printf does not seem to work at all following the retVal->maxSize=10; line.  In a separate run, I added a getchar call after the printf("3\n") which ran fine.  So the program is still getting to the end with no issue.  I just want to know why it is not printing.   Thanks!
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!