#include <stdio.h>
#include <stdlib.h>
int main()
{
int* p = (int*)calloc( 10,sizeof(int));
if (p == NULL){
perror("calloc");
exit;
}
printf("%d\n",&p); // 6487576
printf("%d\n",*p); // 0
printf("%d\n",p); // 1285422
free(p);p = NULL;return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int count = 0; unsigned int i = 0;
printf("请输入你要申请内存空间大小:(int):");scanf("%d",&count);
// 由用户输入的变量值来决定分配大小为多少的整数的内存空间
int* p = (int*)calloc( count , sizeof(int) ); // 使用calloc申请空间
if (p == NULL){ // 判断是否成功申请了空间
perror("calloc");
exit;
}
// sizeof(p) 返回的是指针变量p的大小
// sizeof(*p)返回的是每个元素的大小
for(i = 0; i < count; i++) { // 循环遍历动态空间内的元素并赋值输出值和地址
*(p+i) = i * count; // 给每个元素赋值
printf("输出第%d元素的值:%d\n" , i+1, *(p+i)); // 输出元素值 --*--*是解引用操作符用来获取元素的值
printf("输出第%d元素的地址:%d\n", i+1, p+i ); // 输出元素地址--d--d是int类型
printf("输出第%d元素的地址:%p\n", i+1, p+i ); // 输出元素地址--p--p是指针类型(使用p来输出指针的地址)
}
free(p);
p = NULL;
return 0;
}
// 分配一个整型数组:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)calloc(5, sizeof(int));
if (arr == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 5; i++) {
printf("%d\n", arr[i]);
}
free(arr);
return 0;
}
// 分配一个二维字符数组:
#include <stdio.h>
#include <stdlib.h>
int main() {
char **matrix = (char **)calloc(3, sizeof(char *));
if (matrix == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 3; i++) {
matrix[i] = (char *)calloc(4, sizeof(char));
if (matrix[i] == NULL) {
printf("Memory allocation failed\n");
return 1;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%c\n", matrix[i][j]);
}
printf("\n");
}
for (int i = 0; i < 3; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
// 分配一个结构体数组:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char name[20];
} Student;
int main() {
Student *students = (Student *)calloc(5, sizeof(Student));
if (students == NULL) {
printf("Memory allocation failed\n");
return 1;
}
for (int i = 0; i < 5; i++) {
printf("ID: %d, Name: %s\n", students[i].id, students[i].name);
}
free(students);
return 0;
}
标签:return,int,C语言,printf,calloc,sizeof,include
From: https://blog.51cto.com/youyeye/9618041