/*
* malloc练习
*
* */
#include <stdlib.h>
#include <stdio.h>
int main()
{
int *p_value = NULL;
p_value = (int *) malloc (1 * sizeof(int));
if (p_value) {
printf(" p_value是0x%p\n", p_value);
printf("*p_value是%d\n", *p_value);
free(p_value);
p_value = NULL;
}
}
return 0;
}
/*
* calloc(), realloc()练习
*
* 不同于malloc,calloc会将把开辟的存储空间初始化为零
*
* */
#include <stdlib.h>
#include <stdio.h>
int main()
{
int *p_value = (int * ) calloc(4, sizeof(int));
//(int * ) malloc(4 * sizeof(int));
if (p_value) {
printf(" p_value是0x%p\n", p_value);
printf("*p_value是%d\n", *p_value);
void *pointer = NULL;
pointer = realloc(p_value, 6 * sizeof(int));
//realloc(p_value, 0);实际效果就等于语句free(p_value);
//p_value = NULL, realloc(p_value, 4*sizeof(int));实际效果就
//等于语句p_value = NULL, p_value = (int *)malloc(4*sizeof(int));
if (pointer) {
p_value = (int * )pointer;
}
printf(" p_value是0x%p\n", p_value);
printf("*p_value是%d\n", *p_value);
free(p_value);
p_value = NULL;
}
}
/*
* Input: 1234
* Output: 4321
* */
#include <stdio.h>
#include <stdlib.h>
int main()
{
typedef enum {N, Y} en_retry;
en_retry over = N;
int *p_integer = NULL;
int *p_integers[100] = {NULL};
int counter = 0;
do {
p_integer = (int *) malloc(sizeof(int) * 1);
if (p_integer) {
printf("Input an Integer");
scanf("%d", p_integer);
p_integers[counter++] = p_integer;
}
printf("Another?[Y/N]");
printf("%d\n", over);
scanf("%d", &over);
printf("%d\n", over);
} while (over);
for (--counter; counter >= 0; counter--) {
printf("%d\t", *p_integers[counter]);
free(p_integers[counter]);
}
printf("\n");
return 0;
}