标签:
1 内存五大区
栈 堆 静态区 常量区 代码区
2
int result = 0;
//calloc和malloc功能一样,都是在堆区开辟一块新的空间,唯一不同的是,calloc还把空间重启了一下
//第一个参数是分配多少个房间
//第二个参数是每个房间多少字节
//realloc 追加空间, 如果空间地址够用,直接用原来的空间地址就行,
//如果追加空间不够,重新开辟新的空间,并返回新的地址
//系统会帮我们拷贝原来的空间的内容到新的空间,并释放原来的老空间
//我们释放新空间即可
int *p = malloc(12);
int *q = calloc(3 , 4);
memset(p , 0 , 12);//逐个字节设置
for (int i = 0; i < 3; i++) {
*(p + i) = arc4random() % 3;
printf("%d" , *(p + i));
}
printf("\n*********\n");
for (int i = 0; i < 3; i++) {
*(q + i) = arc4random() % 1;
printf("%d" , *(q + i));
}
printf("\n**********\n");
result = memcmp(p , q , 12);//比较两个地址里面的内容
if (result == 0) {
printf("GOOD\n");
}else{
printf("FALEN");
}
free(p);
p = NULL;
free(q);
q = NULL;
3
//在堆里申请一块空间,存放二维数组
int (*a)[4] = malloc(sizeof(int) * 12);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
*(*(a + i)+ j) = arc4random() % 30 + 1;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d\t" , *(*(a + i) + j));
}
printf("\n");
}
4
int a = 6;
void *p = &a; //void *表示泛型指针变量
printf("%d\n" , *(int *)p);//先强制转化整形指针 再取内容
int b = 7;
printf("%.3f\n" , (float)b);
标签:
原文地址:http://www.cnblogs.com/fengkuangIT/p/4451862.html