Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {int key; int digit; int string[2];}person;
//int pass(man a[]);
int main() {
int apo;
int x;
int digit_length = 3;
double max = 4;
FILE *fp;
int store = 1000000;
person *txPtr;
if( (txPtr = calloc( store, sizeof(person) )) == NULL) {
printf("txPtr:Insufficient memory\n");
abort();
} else {
printf("txPtr:Sufficient Memory\n");
memset(txPtr,0,sizeof(txPtr));
}
person *rxPtr;
if( (rxPtr = calloc( store, sizeof(person) )) == NULL) {
printf("rxPtr:Insufficient memory\n");
abort();
} else {
printf("rxPtr:Sufficient Memory\n");
memset(rxPtr,0,sizeof(rxPtr));
}
int y;
int ao = 0;
int key = 1;
char name[24];
int digit;
int z;
char start[24];
int ad = 0;
int outputl = 0;
char buffer[24];
int xyz;
for(x = 0; x < max; x++) {
txPtr[x].key = x+1;
txPtr[x].digit = 1;
for(xyz = 0; xyz < digit_length; xyz++){
txPtr[x].string[xyz] = 0;
}
txPtr[x].string[0] = x+1;
}
if (( fp = fopen( "unique2.db", "wt" )) == NULL){
perror( "Error opening data file\n" );
return -1;
}
int digital = 0;
int digitstore[digit_length];
int zyx;
for(x = key; x < max; x++) {
printf("\nOne\n");
y = 0;
key = txPtr[y].key;
digit = txPtr[y].digit;
memset(rxPtr,0,sizeof(rxPtr));
for(xyz = 0; xyz < digit_length; xyz++) {
digitstore[xyz] = txPtr[y].string[xyz];
}
while(!key == 0) {
digit = digit + 1;
for( z = key; z < max; z++ ) {
ad = z+1;
rxPtr[ao].key = ad;
rxPtr[ao].digit = digit;
for(xyz = 0; xyz < digit_length; xyz++) {
if (xyz == digit - 1) {
rxPtr[ao].string[xyz] = ad;
} else {
rxPtr[ao].string[xyz] = digitstore[xyz];
}
}
for(xyz = digit; xyz < digit_length; xyz++){
for(zyx = xyz; zyx < digit_length; zyx++) {
printf("%d",rxPtr[ao].string[xyz]);
}
}
printf(" Key:%d, z: %d, Digit: %d,String:%d %d %d\n",ad,z,digit,rxPtr[ao].string[0],rxPtr[ao].string[1],rxPtr[ao].string[2]);
if(digit == digit_length) {
fwrite(rxPtr[ao].string, sizeof(rxPtr[ao].string),1,fp);
}
ao++;
if(digit > digit_length) {
printf("\nExceeded digit limit.\n");
printf("\nFreeing Memory\n\n");
free(txPtr);
free(rxPtr);
abort();
}
}
y++;
key = txPtr[y].key;
digit = txPtr[y].digit;
for(xyz = 0; xyz < digit_length; xyz++) {
digitstore[xyz] = txPtr[y].string[xyz];
}
}
printf("Mem cop");
memset(txPtr, 0, sizeof(txPtr));
memcpy(txPtr, rxPtr, store);
memset(rxPtr, 0, sizeof(rxPtr));
ao = 0;
}
free(txPtr);
free(rxPtr);
if ( fclose(fp) != 0)
{
fprintf(stderr, "Error closing file.\n");
return -2;
}
return 0;
}
Comment