# Difference Between int and size_t in C++

This guide explains the difference between the `size_t`

and `int`

data types in C++. They have some differences, and sometimes you’ll find developers using `size_t`

instead of `int`

in C++.

Let’s dive into this guide and learn the difference.

## Difference Between `int`

and `size_t`

in C++

First, we need to understand that `size_t`

represents the size of objects/variables in bytes. Let’s start with the basic definitions.

In C++, `int`

is considered the basic signed integer type. It’s understood that `int`

will be at least 16 bits wide.

On the other hand, `size_t`

is considered an unsigned integer featuring enough bytes to accommodate any size type. This leaves us with the understanding that `size_t`

will always be able to store more numbers than `int`

.

Integers are signed, implying they may hold positive and negative integral values. Because `size_t`

is an unsigned integer, it does not allow for negative, integral values.

Standard functions use this type for count/number.

`malloc`

(`size_t`

)`memcpy`

(destination, source,`size_t`

)`size_t strlen`

(`const char*`

)

Suppose you are still having trouble deciding which one to use. Visit this amazing portion of the guide, in which it is clearly explained how not to mix signed and unsigned arithmetic numbers.

**Haider Ali**

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn