#include <stdio.h> #include <stdlib.h> typedef struct { int base; int limit; } Segment; void simulateSegmentation(int segments[], int numSegments) { int memory[100]; // Simulate memory with an array (100 units for example) int currentBase = 0; // Allocate segments in memory for (int i = 0; i < numSegments; i++) { if (currentBase + segments[i] <= 100) { printf("Allocating segment %d with size %d at base %d\n", i, segments[i], currentBase); for (int j = currentBase; j < currentBase + segments[i]; j++) { memory[j] = 1; // Mark memory as occupied } currentBase += segments[i]; } else { printf("Not enough memory for segment %d with size %d\n", i, segments[i]); } } } int main() { int numSegments; printf("Enter number of segments: "); scanf("%d", &numSegments); int segments[numSegments]; for (int i = 0; i < numSegments; i++) { printf("Enter size of segment %d: ", i); scanf("%d", &segments[i]); } simulateSegmentation(segments, numSegments); return 0; }