An introduction to analyzing code to find potential errors via static analysis, using the PVS-Studio tool
Learn about the basics of Android architecture and how to get set up to program for Android on Windows and Linux.
This guide provides developers with an overview of the Microsoft Windows 8 sensors application programming interfaces (APIs) for Desktop and Windows UI style applications with a specific focus on...
New Ultrabook computers come with many awesome sensors, like compass and GPS--in this article, learn how to work with these sensors on Windows 8.
Learn how some companies are making cross-platform mobile games.
Learn tools and techniques for making your software more power-efficient in this article focusing on developing for mobile devices running on battery.
Developers can now submit and distribute applications via the Intel AppUp(SM) developer program to the latest experience in personal computers called Ultrabook(SM).
Learn how to create and configure shared libraries on Linux using GCC, allowing you to share and re-use code between projects
Learn how C++11 improves type safety with nullptr and provides better enum values and strongly typed enums known as enum classes.
Write a program that takes an integer and displays the English name of that value. You should support both positive and negative numbers, in the range supported by a 32-bit integer (approximately...
Hash tables are an efficient implementation of a keyed array data structure--in this article, learn how hash tables are implemented and what you might use them for.
Learn the difference between these two keywords in this new FAQ entry. Useful when working with multiple source files!
C++ is fast, but C++ has always had a "temporaries" problem--lots of objects being unnecessarily created and destroyed when returning values from functions, slowing down programs or requiring unn...
How to go from programming Java to programming C or C++, covering lots of the differences between C, C++ and Java
C++ IO streams control how data is output and input to a C++ program. IO streams are incredibly flexible, making it easy for you to write out your own classes to all kinds of different destinatio...
There are several improvements in C++11 that promise to allow programs written using C++11 to run faster than ever before. One of those improvements, generalized constant expressions, allows prog...
Learn how to easily loop over containers using the new C++11 range-based for loops--and how to add support for range-based for loops to your own classes!
Are you using a debugger when you run into crashes or other problems? If not, you should be--this tutorial will show you how, using GDB, the GNU Debugger, the standard debugger for Linux and Unix...
One of the most exciting features in C++11 is the addition of lambda functions. A lambda function is a function that you can write inline in your source code (usually to pass in to another functi...
C++0x, now officially C++11, improves C++'s type inference with the new meaning of auto (itself a great time saver) and decltype, auto's not-evil twin. Together, combined with the new return valu...
C++0x is the working name for the new standard for C++, a tremendous new upgrade to the power and usability of C++. The best news? Many C++0x features are already available in several popular com...
Ever wondered about all the different options when you use format strings with printf? Wonder no more--this article takes you through all the arguments and options for producing beautiful output ...
The MeeGo mobile operating system is picking up speed. Computex saw announcements about numerous new MeeGo-powered tablets and netbooks. For developers interested in the MeeGo platform, there are...
In C and C++, there is a subtle but important distinction between the meaning of the words declare and define. If you don't understand the difference, you'll run into weird linker errors at unple...
Both C and C++ support function pointers, which provide a way to pass around instructions on how to perform an operation. But function pointers are limited because functions must be fully specifi...
So far, we've covered many of the core elements of an animation, including the Graphic Object, Animation Object, Camera, Frustum, Layers and Layer Folders. This article (and the next) will bring ...
Intel AppUp (SM) is now accepting MeeGo apps and offering new incentives for developers. If you're interested in netbook and tablet app development, check it out!
Need some ideas for software-related New Year's resolutions? Check these out and make a resolution to keep up with the latest trends in technology! Happy New Year!
Part 2 in our series on designing an animation engine explains how to organize animations with frames, layers and layer folders
Interested in writing games for multiple platforms? Want to know what goes in to building a port and how to make your game port-friendly? This interview discusses one developer's experience porti...
The first part in a series discussing the design of an object oriented approach to animation
Find out how you could win $15,000 for writing the ultimate home-enhancing app in the Dixons Challenge
Learn about AppUp, an app store framework that allows developers to submit apps to app stores serving a variety of devices
This is it. We are almost done with our version of the SameGame. We've discussed quite a few topics ranging from event driven programming to GDI graphics programming. A lot of the topics we've di...
Our version of the SameGame is really taking shape. We have a game that can be played from start to finish in five different levels of difficulty. In this article we'll be adding more options to ...
Now that we a playable game, it's time to add some challenge and make it harder by adding new difficulty levels
In the second article in this series on creating a game from start to finish, you'll go from drawing the game board to actually having a playable game!
The first in a series of articles that will teach you exactly how to create a game starting at the very beginning and ending with a fully playable game (source included!)
Instructions for getting, setting up and using XCode for Mac OS X. Apple XCode allows you to create both native OS X applications and iPhone apps.
Explore the different types of memory errors and how to use Intel Parallel Inspector to debug your code
Some of the most important lessons I learned in college came from one professor, Michael Mitzenmacher. Now, this was a guy with a lot of papers to his name, tenured at Harvard, working on some pr...
A practice program for beginners--write a program that converts Celsius to Fahrenheit and puts it into a nicely formatted table
Help us serve you better by completing this very short survey!
In this challenge, given the name of a file, print out the size of the file, in bytes. If no file is given, provide a help string to the user that indicates how to use the program. You might need...
Learning to program isn't something you can do in an afternoon, but it doesn't have to be a life's work, either. There are lots of things you can do to make it easier on yourself when you are lea...
When you're just starting out with programming, it's easy to run into problems that make you wonder how anyone has ever managed to write a computer program. But the fact is, just about everyone e...
HOW CAN CPROGRAMMING.COM BETTER HELP YOU? I'd like to know how you think I could make Cprogramming.com more helpful to you. Please send me email at webmaster@cprogramming.com with your thoug...
So you know all the basic debugger features: breakpoints, stepping through the code, viewing the values of variables. But there's a lot more your debugger can do to make it quicker to step throug...
Discover how to debug code running on a one machine from your main development box using remote debugging with Visual Studio
Part 5 in a series on debugging with Visual Studio. Discover how to use tracing and logging to make debugging easier.
Part 4 in a series on debugging C and C++ in Visual Studio
Part 3 in a series on debugging with Visual Studio
The Ask an Expert hage has been updated with a link to Cprogramming.com's very own expert grid, featuring experts from our message board community and others!
Learn about the subtleties of constructors and destructors in C++
In this article series, we discuss the concepts of debugging with Visual Studio 2005/2008. Part one covered general debugging concepts; part two will explain how to configure the Visual Studio ID...
How and why to use (or avoid) operator overloading for cleaner, more readable code.
Whenever you write C++ programs, inevitably you're going to have to debug the program. This series of articles will discuss how to debug using Visual Studio, but first, we'll need to start out wi...
Part 4 in the dynamic memory management series: memory leaks and how to avoid them.
It's about time we added an about us page. Find out who's behind cprogramming.com
At times, you will have classes for which you want to specialize memory allocation. Why? You know something about how the class is used. For instance, you might specialize memory allocation for a...
Part 2 in a series on dynamic memory allocation and management
Part 1 in a series on dynamic memory allocation in C/C++.
To use the CADOManager class as a base class to an inherited management class we should adopt some convention to name these inherited classes. It can be anything really but it seems easy enough t...
Now that we have gone over the basics and described a way to design and create ADO wrapper classes, it is now time for the final phase of creating an ADO manager class that will work on all the c...
Now that the basics are out of the way we can actually begin to design some useful code that will do something! We need an easy way to create, access and manage the ADO objects we have discussed....
ADO consists of a series of objects that are used to manage interfacing to an SQL server. These objects need to be instantiated using a smart pointer and then set up correctly in order to perform...
This series of articles will detail how to use Microsoft Active Data Objects (ADO) and C++ to manage database operations. Part 1 highlights in simple terms the basic SQL operations that the examp...
Multiple inheritance in C++ is a powerful, but tricky tool, that often leads to problems if not used carefully. This article will teach you how to use virtual inheritance to solve some of these c...
Deriving directly from more than one class is usually called multiple inheritance. Since it's widely believed that this concept complicates the design and debuggers can have a hard time with it, ...
This tutorial will provide you with detailed instructions for a standard installation of Code::Blocks and the MINGW compiler, a free development environment for C and C++.
This tutorial assumes that you have already set up Code::Blocks and the MINGW compiler in Windows. Now, we will add the SDL graphical libraries, which will enable you to write graphical applicati...
’m constantly amazed how many seemingly well-educated computer technologists bandy about the word parallelism without really knowing what they’re talking about. I can’t tell you how many ar...