analyze each program and figure out what is wrong with the memory management in the code and how to fix the code. #include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <assert.h> // Hint: If you run this program repeatedly, with ever-larger numbers as input,// eventually something (slightly) unexpected should happen.intmain(int argc, char *argv[]){if (argc != 2) { fprintf(stderr, "usage: broken2 <value>\n"); exit(1); } int size = atoi(argv[1]);int *p;p = malloc(size*sizeof(int));for (int i = 0 ; i < size; i++) {p[i] = i;}int *q;q = malloc(sizeof(p));for (int i = 0 ; i < size; i++) {q[i] = p[i];} free(p);free(q);return 0;}
analyze each program and figure out what is wrong with the memory management in the code and how to fix the code. #include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <assert.h> // Hint: If you run this program repeatedly, with ever-larger numbers as input,// eventually something (slightly) unexpected should happen.intmain(int argc, char *argv[]){if (argc != 2) { fprintf(stderr, "usage: broken2 <value>\n"); exit(1); } int size = atoi(argv[1]);int *p;p = malloc(size*sizeof(int));for (int i = 0 ; i < size; i++) {p[i] = i;}int *q;q = malloc(sizeof(p));for (int i = 0 ; i < size; i++) {q[i] = p[i];} free(p);free(q);return 0;}
Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
Related questions
Topic Video
Question
analyze each
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
// Hint: If you run this program repeatedly, with ever-larger numbers as input,
// eventually something (slightly) unexpected should happen.
int
main(int argc, char *argv[])
{
if (argc != 2) {
fprintf(stderr, "usage: broken2 <value>\n");
exit(1);
}
int size = atoi(argv[1]);
int *p;
p = malloc(size*sizeof(int));
for (int i = 0 ; i < size; i++) {
p[i] = i;
}
int *q;
q = malloc(sizeof(p));
for (int i = 0 ; i < size; i++) {
q[i] = p[i];
}
free(p);
free(q);
return 0;
}
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 1 images
Knowledge Booster
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.Recommended textbooks for you
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education