Search This Blog

C Programming Arrays

In this article, you will learn to work with arrays. You will learn to declare, initialize and, access array elements with the help of examples.

Table of Contents

C Arrays
How to declate arrays?
How to access array elements?
How to initialize an array?
How to insert elements to an array?
Initialize array during declaration
Example: Arrays
Be careful while using arrays in C
C arrays

An array is a collection of a fixed number of values of a single type. For example: if you want to store 100 integers in sequence, you can create an array for it.

int data[100];
The size and type of arrays cannot be changed after its declaration.

Arrays are of two types:

One-dimensional arrays
Multidimensional arrays (will be discussed in next chapter)

How to declare arrays?

data_type array_name[array_size];
For example,

float mark[5];
Here, we declared an array, mark, of floating-point type and size 5. Meaning, it can hold 5 floating-point values.

Elements of an Array and How to access them?
You can access elements of an array by indices.

Suppose you declared an array mark as above. The first element is mark[0], second element is mark[1] and so on.

C Array declaration 

Few key notes:
Arrays have 0 as the first index not 1. In this example, mark[0]
If the size of an array is n, to access the last element, (n-1) index is used. In this example, mark[4]
Suppose the starting address of mark[0] is 2120d. Then, the next address, a[1], will be 2124d, address of a[2] will be 2128d and so on. It's because the size of a float is 4 bytes.
How to initialize an array?
It's possible to initialize an array during declaration. For example,

int mark[5] = {19, 10, 8, 17, 9};

Another method to initialize array during declaration:

int mark[] = {19, 10, 8, 17, 9};

Initialize an array in C programming


mark[0] is equal to 19
mark[1] is equal to 10
mark[2] is equal to 8
mark[3] is equal to 17
mark[4] is equal to 9
How to insert and print array elements?
int mark[5] = {19, 10, 8, 17, 9}

// insert different value to third element
mark[3] = 9;

// take input from the user and insert in third element
​scanf("%d", &mark[2]);

// take input from the user and insert in (i+1)th element
scanf("%d", &mark[i]);

// print first element of an array
printf("%d", mark[0]);

// print ith element of an array
printf("%d", mark[i-1]);
Example: C Arrays
// Program to find the average of n (n < 10) numbers using arrays


#include <stdio.h>
int main()
     int marks[10], i, n, sum = 0, average;
     printf("Enter n: ");
     scanf("%d", &n);
     for(i=0; i<n; ++i)
          printf("Enter number%d: ",i+1);
          scanf("%d", &marks[i]);
          sum += marks[i];
     average = sum/n;

     printf("Average = %d", average);

     return 0;


Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39

Important thing to remember when working with C arrays
Suppose you declared an array of 10 elements. Let's say,

int testArray[10];
You can use the array members from testArray[0] to testArray[9].

If you try to access array elements outside of its bound, let's say testArray[12], the compiler may not show any error. However, this may cause unexpected output (undefined behavior).

C Program to Copy String Without Using strcpy()

WELCOME BACK TO , In this article, you'll learn to copy string without using the library function strcpy().

To understand this example, you should have the knowledge of following C programming topics:

C Programming Arrays
C Programming Strings
C Programming for Loop

You can use the strcpy() function to copy the content of one string to another but, this program copies the content of one string to another manually without using strcpy() function.

Example: Copy String Manually Without Using strcpy()


#include <stdio.h>
int main()
    char s1[100], s2[100], i;

    printf("Enter string s1: ");

    for(i = 0; s1[i] != '\0'; ++i)
        s2[i] = s1[i];

    s2[i] = '\0';
    printf("String s2: %s", s2);

    return 0;


What is DOS/DDOS Attack || Explained With Example 2019

Practical Video

 What is DOS/DDOS Attack || Explained With Example 2019

ddos attack practical 2019

The safety incident of a service denial occurs when the attacker prevents the legitimate user from entering certain computer systems, devices, services or other IT resources. Services (DoS) typically invade flood servers, systems, or networks by destroying victims' resources and making it difficult or impossible to access legitimate users.

My Youtube Channel Link:

Attacking a server can usually be successfully dealt with by rebooting the system, and flood attacks can be more difficult to recover. Assault traffic comes from a large number of sources, by rescuing attacks from the DDoS, which is more difficult.

Networking protocols DoS and DDoS attacks often use vulnerability to handle network traffic; For example, by transmitting large numbers of packets to a weak network service from various Internet Protocol (IP) addresses to destroy services and not be available to legitimate users.
Signs of the Dose Attack

The United States Computer Emergency Readiness Team (US-CERT) provides some guidelines to determine when a dose attack is on. The US-CERT states that such attacks may include:

    Decline in network performance, especially when attempting to open files stored on the network or accessing websites;
    Inability to reach a particular website;
    The website is difficult to access; And
    Increased amount of spam email.

Preventing a DoS attack

In addition to preparing an event feedback plan, DoS and DDoS recommend several strategies to protect against attacks.

When an industry suspects DoS attacks, it should contact its Internet Service Provider (ISP) to determine if the event is a decline in performance due to actual DOS attacks or other factors. The ISP helps reduce the DoS and DDoS by using load balancers to reset or throw malicious traffic and reduce the impact of the attack.

Businesses may want to explore the possibility of using detection products that deny the DoS protection service; Some intrusion detection systems, intrusion prevention systems and firewalls provide DoS detection functions. Other strategies are contracted with backup ISP and use anti-cloud anti-DoS

In cases where the DOS or Didos stand to end the attack if attackers are required to pay off the victims, financial gain is not usually the backward intent of this type of attack. In many cases, attackers may cause a person to be harmed or attacked by the organization. In other cases, attackers are trying to ruin the victim by causing the greatest damage or disadvantage to a large number of victims. When the dose is detected by the attacker, the causes of the attack may be revealed.

Many high-profile DoS attacks actually deliver attacks, which means attack traffic is directed by many attack systems. DOS attacks may be easier to reduce when it originates from a single source or IP address, due to restricting network traffic from the armor source, and attacks that are directed by multiple attack systems are more difficult to detect and protect. Malicious traffic is difficult to distinguish between legitimate traffic and filtering malicious packets when packets are sent from IP addresses on the Internet.
Types of DoS attacks

DoS attacks can be categorized by methods used in the attack, except for a single-source negation-service attack and the DDoS attack.

Enhanced Domain Name System (DNS) Service Denial - In service attack, the attacker creates DNS requests created, which originate from the IP address on the victim's network and sends it to incorrectly configured DNS servers managed by third parties. Enhancement occurs as intermediate DNS servers respond to fake DNS requests. Response to attack requests created by intermediate DNS servers may contain more data than ordinary DNS responses, which require more resources to be processed. This may result in the rejection of access to the service to legitimate users.

Application layer attacks can cause fake traffic to Internet application servers, especially DNS servers or HTTP servers. Some application layer rejection-service attacks simply relied on flooding application servers with network data, while others misuse the weaknesses or vulnerabilities themselves on the victim's application server or atrocities.

Castal is a buffer overflow attack that usually applies to missions, which sends more traffic to a network resource than the developers and is designed to be expected. An example of such an invasion is to receive using Netscape or Microsoft Email

Download CEHv9 Study Guide PDF || Certified Ethical Hacker V9 Book

Download CEHv9 Study Guide PDF This book will be a great journey for our users in the field of cyber security . This book contains in ...