Вместо статичного массива теперь сипользует malloc, поэтому теперь возможно сортировать массивы размера больше 1000000

This commit is contained in:
AZEN-SGG 2024-11-22 10:19:57 +03:00
parent 0d98154944
commit 22da302535
8 changed files with 25 additions and 12 deletions

BIN
Sorting/9Ex/a.out Normal file

Binary file not shown.

12
Sorting/9Ex/leak.out Normal file
View file

@ -0,0 +1,12 @@
# LeakReport
# from new @ | size # Pointer Addr
L 0x402b51 64 # 0xf17920
L 0x4026ba 80000000 # 0x7ff8765bc010
L 0x4026ba 48 # 0xf179b0
L 0x402cc9 80000000 # 0x7ff87fe54010
L 0x4026a5 80000000 # 0x7ff87b208010
L 0x4026a5 48 # 0xf17970
# total allocation requests: 8 ; max. mem used 234375 kBytes
# leak 240000160 Bytes :-(
# .. that is 234375 kByte!! A lot ..
WORK TIME - 00:00:14.06

View file

@ -3,7 +3,7 @@
#include "tools.h"
#include <stdlib.h>
int main() {
int main(void) {
FILE * file = getFile();
double * array;
int length;
@ -11,7 +11,7 @@ int main() {
if (file == NULL) return -1;
array = getArray(file);
if (array == NULL) return -2;
length = (int)array[0];
length = (int)array[0] - 1;
array = &array[1];
printArray(array, length);

View file

@ -1,6 +1,6 @@
all: main.o seagwithsob.o tools.o
gcc main.o seagwithsob.o tools.o && del *.o
a.exe
gcc main.o seagwithsob.o tools.o && rm *.o
./a.out
main.o: main.c
gcc -c main.c

View file

@ -1,8 +1,9 @@
#include "seagwithsob.h"
void sort(double * array, int length) {
double zero[length];
double unit[length];
double * zero = (double *)malloc(length * sizeof(double));
double * unit = (double *)malloc(length * sizeof(double));
int index, timer = -clock();
for (int j = 0; j < 63; ++j) {

View file

@ -2,6 +2,7 @@
#define SEAGWITHSOB
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

View file

@ -1,10 +1,10 @@
#include "tools.h"
FILE * getFile() {
FILE * getFile(void) {
char filename[50];
printf("Enter file name: ");
if (scanf("%s", &filename) == 1) {
if (scanf("%s", filename) == 1) {
FILE * file = fopen(filename, "r");
if (file == NULL) {
printf("Error file!\n)");
@ -19,7 +19,6 @@ FILE * getFile() {
}
double * getArray(FILE * file) {
char filename[50];
int i, size = 2;
double * array = NULL;
double current;
@ -53,7 +52,7 @@ bool orderliness(double * array, int length) {
return true;
}
void randomArray() {
void randomArray(void) {
int length;
printf("Enter length of array: ");

View file

@ -10,10 +10,10 @@
#define exp -1.e-6
FILE * getFile();
FILE * getFile(void);
double * getArray(FILE * file);
bool orderliness(double * array, int length);
void randomArray();
void randomArray(void);
void generate(double * array, int length);
void printArray(double * array, int length);