c

Binary Tree Node Fault

Here's the node definition: struct node{ int data; stuct node * left; struct node * right; }; What I am trying to do is list all the nodes that point to an ancestor node. After posting the wrong solution and taking advice from the answers, my new solution is: Recursively go through the binary tree. Add the current node to...

A Java programmer has questions regarding C header files

I have a fair amount of practice with Java as a programming language, but I am completely new to C. I understand that a header file contains forward declarations for methods and variables. How is this different from an abstract class in Java? ...

Weird C++ templating issues

So basically the assignment was we had to create a doubly linked list that's templated generically instead of locked to a single data type. I've tried compiling both with gcc and msvc and both compilers are giving me roughly the same errors so I'm assuming its just my bad coding and not the quirkyness of one compiler or the other. Curr...

Tips on wrapping a C library in Objective-C

Hey Guys, I have a library written in C that I would like to use in an Objective-C app, either on the Mac or the iPhone. Unfortunately, since this library is being written by individuals in the open source space, the documentation is quite sparse and incomplete. While I can figure out how to use the stuff in the library, I don't really...

Trying to use execvp() in C with user input in unix

I'm trying to make a program that will prompt the user for a command, then use exec to execute that command. For instance if they gave me "ls -la" I would have to execute that command. I've tried the following code: #include <stdio.h> #include <unistd.h> #include <string.h> int main() { int ret, num_args; printf("Enter numbe...

How to get Linux distribution name and version?

In Windows I read the registry key SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName to get the full name and version of the OS. But in Linux, the code struct utsname ver; uname(&ver); retVal = ver.sysname; returns the string linux, not Ubuntu 9.04. How can I get the Linux distribution name and version? ...

How to find the menu item (if any) which opens a given HMENU when activated?

I'd like to implement a function with the prototype /* Locates the menu item of the application which caused the given menu 'mnu' to * show up. * @return true if the given menu 'mnu' was opened by another menu item, false * if not. */ bool getParentMenuItem( HMENU mnu, HMENU *parentMenu, int *parentMenuIdx ); Given a HMENU handle,...

bug-input 2d array using scanf in C

Whats wrong with this?I am getting segmentation fault during runtime. int size; scanf("%d",&size); int init[size][size]; //initial matrix for(int i=0;i<size;i++) for(int j=0;j<size;j++) scanf("%d",init[i][j]); ...

Receiving power notifications (especially shutdown) on Mac OSX

I'm writing an application in C for the Mac (Leopard) that needs to do some work on receipt of power notifications, e.g. sleep, wake-up, shutdown, restart. It runs via launchd as a launchagent on login then begins monitoring for notifications. The code I'm using to do this is as follows: /* ask for power notifications */ static void Sta...

Bit manipulation library for ANSI C

Does anyone knows a good bit manipulation library for ANSI C? What I basically need, is ability, like in Jovial to set specific bits in a variable, something like // I assume LSB has index of 0 int a = 0x123; setBits(&a,2,5, 0xFF); printf("0x%x"); // should be 0x13F int a = 0x123; printf("0x%x",getBits(&a,2,5)); // should be 0x4 char ...

Thread safe char string in C

In C: If I have 3 threads, 2 threads that are appending strings to a global char string (char*), and 1 thread that is reading from that char string. Let's say that the 2 threads are appending about 8 000 strings per second each and the 3rd thread is reading pretty often too. Is there any possibility that they will append at exactly th...

Does going out of scope like this free the associated memory?

I was just wondering, in the following scenarion, is the memory used by 'stringvar' freed after method1 is done executing? // Just some method void method2(char* str) { // Allocate 10 characters for str str = malloc(10 * sizeof(char)); } // Just another method void method1() { char* stringvar; method2(stringvar); // Is the m...

Adding a C/C++ nature to an Eclipse project

Hello, Does anybody know how to add a C/C++ project nature to an Eclipse project through the UI ? I'm importing a project and working with legacy code that was originally started in Visual Studio 4 and I'd really like to be able to make as much use of Eclipse's helpers as possible. ...

function pointer :physical or virtual address

when we get the address of a function or any object for that matter,is it the virtual address or physical address of that object?? ...

How do you get started when trying to understand the code of a 3D game engine (like id Tech 3)?

I'm a C# developer for the most part. Back in college I had classes on C/C++ so I "know C" and that's a good chunk of the reason I'm a C# developer. However I've never had the chance to code in C/C++ professionally and I'd like to study how a modern game engine works, along with how an industrial grade C/C++ app operates. The problem i...

Extracting Spot Color equivalents from TIFF

I'm trying to get the Spot color information from a TIFF file, it normally shows up under 'channels' in Photoshop. Each extra channel would have a name, which is usually a Pantone swatch name, and a CMYK equivalent. So far, I'm getting the TIFFTAG_PHOTOSHOP with libtiff, and stepping through the blocks within. I'm finding the IRB WORD...

Sound of a rolling ball

I'm looking for the most realistic way of playing sound of a rolling ball. Currently I'm using a Wav sample that I play over and over as long as the ball is moving - which just doesn't feel right. I've been thinking about completely synthesizing the sound, which I know very little about (almost nothing), I'd be grateful for any tutorial...

Packet socket in promiscuous mode only receiving local traffic

I have a socket created with socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)), and I've set it into promiscuous mode using struct ifreq ifr; strncpy((char*)ifr.ifr_name, interface, IF_NAMESIZE); if(ioctl(sock, SIOCGIFINDEX, &ifr)<0) fail(2); struct packet_mreq mr; memset(&mr, 0, sizeof(mr)); mr.mr_ifindex = ifr.ifr_ifindex; mr.mr_type = P...

Rounding floats with non-exact representation

Hello, We have a problem with rounding of floating point numbers for some financial calculations. Basically, we want to round monetary amounts like 1000000000.555 to 2 decimals. However, the float representation of this number is 1000000000.5549999 and as a result we will round down to 1000000000.55 rather than the correct 1000000000.5...

How can i share memory between parent-child process that free the memory automatically when they die

I know about "mmap", but as far as i know if i want to share memory allocated by a parent process and accessed it by a client process i need to create a temporary file. But this file will continue to exist if the processes die. I was educated to never leave garbage behind. Both in real life and in programming. The solution should wo...