C Programming

Asprintf 3 C Function

The “asprintf” is the abbreviation for “allocating string print formatted”. The “asprintf()” gives the output in the perfect size of the buffer which is allocated inside the function. The “asprintf” is identical to the “printf” but the only difference between this command and the printf is that its first parameter is a string to which the output should be sent. It ends the string with the null character. It gives back the total amount of characters, except the last null.

In this guide, we will explore this “asprintf()” concept in deep details and do practical examples where we use the “asprintf()” function in the C programming. We will also explain the examples here for your better understanding.

Syntax of the Asprintf 3 Function in C Language

# int asprintf(char **ret, const char *format, ...);

The initial argument is the address of a pointer. The remaining 2 parameters are the same as we used for the printf().

Example 1:

The given examples in this guide are run in Ubuntu 20.04. Therefore, GCC must be installed for Ubuntu 20.04 to carry this out. We first install this GCC. After installing, we create some code in the C programming language to demonstrate how the “asprintf()” function operates.

Here, we use the Ubuntu 20.04’s text editor to write some code. We first add the header file such as “<stdio. h>” to the following code. This header file is used as it contains the information to include the input or output functions in the C code. We have the “main()” function, and this is declared as an “int” data type. Then, we have a “buffer” and the data type of this “buffer” is “char”. Then, we have the “int” data type and declare the variable “r” as the “int”.

Now, we assign the “asprintf()” function to this “r”. In this “asprintf()” function, we put the address of the “buffer” then we have a line that we want to print on the screen. The buffer is allocated and its size is correctly set in the asprintf() method so that it holds the output after formatting. Overflow is not conceivable. Then, we use the “puts” statement which is used to print the line or string on the terminal. The contents of the buffer are displayed. The return value from the asprintf() method which is kept in the “r” variable is also printed. This value reflects the length of the returned string. It is used to render the character of the string. In the last part of this code, we utilize the “return 0”.

The following is the result of the previous code. We utilize the “g++” here. The GNU compiler supports this “g++” command and this “asprintf” function is compiled through this command which we have written in the output. You can easily get the output of these codes by typing the commands which are shown in the following screenshot. You can see that it prints the total number by adding the numbers which we have inserted in the previous code. Count the character and display it here.

Example 2:

Now, we have another example. We begin our code by putting the “stdio. h” header file. This header file is utilized because it contains the details to incorporate the input or output functions in the C code. Then, we put the “main()” of the “int” data type. After this “main()” function, we declare a variable named “my_string” and “char” which represent the data type of this variable.

After this, we utilize the “asprintf()” function and put the address of the “my_string”. We also put a string that we want to render on the screen. Here, we put the “%d” which is used for the integer numbers. It gets the integer which is written inside the “asprintf()” function. Then, we utilize the “puts” statement which is used to print the given statement on the output screen. The contents of the “my_string” are rendered on the terminal.

Below this, we use the “asprintf()” function again and pass the address of the char variable inside this “asprintf()”. We use the “%s” which represents the string data. It gets the string data which we give at the end of this “asprintf()” function. To dispaly this on the output screen, we utilize the “puts” statement. In the “puts” statement, we use the name of the char variable “my_string”. At the end of this code, we put the “return 0” statement and then close the bracket of the main() function.

Look at the following output. You can notice that it prints “4” in place of “%d” and prints the “cake” in place of the “%s”. We get this output by typing the “g++” commands. We have already discussed this “g++” command in our previous code.


This guide’s main goal is to demonstrate how to use the “asprintf ()” C programming function. The “asprintf()” function’s purpose, usage, and outcomes were discussed in this guide. The “asprintf ()” C function is already discussed here. As we discussed, the “asprintf ()” function in C is used to give the output in the perfect size of the buffer which is allocated inside the function. We looked at the multiple examples here. The output from each example in this guide, as well as the C programming codes for utilizing the “asprintf()” function, are displayed. We hope that after carefully and deeply studying this guide, you will get a good knowledge of the “asprintf()” function.

About the author

Omar Farooq

Hello Readers, I am Omar and I have been writing technical articles from last decade. You can check out my writing pieces.