Waitrud Weber’s blog

things and reminders for memories

3d: windows-make: malloc as a param is still O.K.

That result is more interesting.
We can use a pointer allocation as a param from the sublootin as a returnable value.


--- execution 001 ---
string[0]=|022B3C38|0|
string[1]=|022B3C39|0|
string[2]=|022B3C3A|0|
string[3]=|022B3C3B|0|
string[4]=|022B3C3C|-16|
string[5]=|022B3C3D|0|
string[6]=|022B3C3E|0|
string[7]=|022B3C3F|0|
string[8]=|022B3C40|0|
string[9]=|022B3C41|0|
string 03[0]=|022B3C50|76|
string 03[1]=|022B3C51|23|
string 03[2]=|022B3C52|85|
string 03[3]=|022B3C53|114|
string 03[4]=|022B3C54|0|
string 03[5]=|022B3C55|0|
string 03[6]=|022B3C56|0|
string 03[7]=|022B3C57|0|
string 03[8]=|022B3C58|1|
string 03[9]=|022B3C59|0|
string 03[10]=|022B3C5A|0|
string 03[11]=|022B3C5B|0|
string 03[12]=|022B3C5C|0|
string 03[13]=|022B3C5D|0|
string 03[14]=|022B3C5E|0|
string 03[15]=|022B3C5F|0|
string 01[0]=|022B3C50|0|
string 01[1]=|022B3C51|0|
string 01[2]=|022B3C52|0|
string 01[3]=|022B3C53|0|
string 01[4]=|022B3C54|-16|
string 01[5]=|022B3C55|0|
string 01[6]=|022B3C56|0|
string 01[7]=|022B3C57|0|
string 01[8]=|022B3C58|0|
string 01[9]=|022B3C59|0|
string 01[10]=|022B3C5A|0|
string 01[11]=|022B3C5B|0|
string 01[12]=|022B3C5C|0|
string 01[13]=|022B3C5D|0|
string 01[14]=|022B3C5E|0|
string 01[15]=|022B3C5F|0|
--- execution 001 ---

 

int vDisplayController_002::malloc_main () {
	char *string_001 = NULL;
	char *string_003 = NULL;
	int i;
	FILE *fp = NULL;
	printf("int main ( int argc, char** argv ) starts.\r\n");

	fp = fopen ( (char*) "001-malloc_main-001.txt", "wb" );

	//
	string_001 = (char*)char_string(10);
	for( i=0; i<10; i++ ) {
		fprintf(fp,"string[%d]=|%p|%d|\r\n", i, string_001+i, *(string_001+i));
	}

	string_003 = (char*)mchar_string(string_001, 16);
	for( i=0; i<16; i++ ) {
		fprintf(fp,"string 03[%d]=|%p|%d|\r\n", i, string_003 + i, *(string_003+i));
	}

	for( i=0; i<16; i++ ) {
		fprintf(fp,"string 01[%d]=|%p|%d|\r\n", i, string_003 + i, *(string_001 + i));
	}

	fclose(fp);
	printf("int main ( int argc, char** argv ) ends.\r\n");
	return 0;
}
...
char* vDisplayController_002::mchar_string (char* string_002, int num) {
	char *tmp, *w;
	printf("char* mchar_string (char* string_002, int num) starts.\r\n");

	tmp = (char*) malloc ( num );
	if ( tmp == NULL ) {
		printf("14: |%p|\r\n", tmp);
		exit(-1);
	}
	w = string_002;
	string_002 = tmp;
	free(w);
	printf("char* mchar_string (char* string_002, int num) ends.\r\n");
	return string_002;
}

willinglytranslate.blogspot.com