首页 > 其他分享 >C语言-calloc

C语言-calloc

时间:2024-02-06 11:00:35浏览次数:21  
标签:return int C语言 printf calloc sizeof include

#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;
}

C语言-calloc_calloc

C语言-calloc_calloc_02

C语言-calloc_C函数_03

// 分配一个整型数组:
#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

相关文章

  • 3.C语言学习--分支与循环例题分析2
    1.有三个数,将他们按照从大到小的顺序输出intmain(){ inta=0; intb=0; intc=0; scanf("%d%d%d",&a,&b,&c); inttmp=0; if(a<b) { tmp=a; a=b; b=tmp; } if(a<c) { tmp=a; a=c; c=tmp; } if(b<c)......
  • 使用C语言构建一个独立栈协程和共享栈协程的任务调度系统
    使用了标准库头文件<setjmp.h>中的setjmp和longjmp两个函数,构建了一个简单的查询式协作多任务系统,支持独立栈和共享栈两种任务。其中涉及到获取和设置栈的地址操作,因此还需要根据不同平台提供获取和设置栈的地址操作(一般是汇编语言,因为涉及到寄存器)该调度系统仅运行在一个......
  • c语言设计模式精要
    C语言是一种广泛使用的编程语言,它具有高效、灵活和可移植性等优点。在C语言的设计中,有一些重要的设计模式可以提高代码的可读性、可维护性和可扩展性。其中,最常见的设计模式包括单例模式、工厂模式和观察者模式等。单例模式用于确保一个类只有一个实例,并提供全局访问点;工厂模......
  • C语言-calloc
    学习网址C语言动态内存函数(malloc、calloc、realloc、free)详解:https://www.jb51.net/program/295325hjh.htmC语言动态内存函数详解:https://www.jb51.net/article/223725.htmcalloc函数需要头文件:<stdlib.h>calloc函数(动态内存分配函数):void*calloc(size_tnum,size_tsize);功能......
  • c语言判断是文件还是文件夹,软链接,硬链接
    摘自:文心一言在C语言中,可以使用stat()函数来判断一个路径对应的是文件、文件夹或者其他类型。#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>intmain(){charpath[]="/path/to/file_or_folder";//要判断的路径structstatfileInfo......
  • 探索C语言的数据类型:解密编程世界的核心秘密
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......
  • 探索C语言的数据类型:解密编程世界的核心秘密
    ✨✨欢迎大家来到贝蒂大讲堂✨✨......
  • (2024.1.29-2024.2.4)C语言学习小结
    本周主要围绕《HeadfirstC》这本书展开C语言学习,按照计划,我学习了的内容。基本内容这周学习的内容像是上学期最后的内容的扩展、延申、深入,高级函数那块有点绕但慢慢啃下来还可以接受。以下是思维导图:遇到的问题与解决、经验教训等问题0(上周的问题这周才解决):看到书里......
  • C语言-malloc学习
    学习网址C语言动态内存函数(malloc、calloc、realloc、free)详解:https://www.jb51.net/program/295325hjh.htmC语言动态内存函数详解:https://www.jb51.net/article/223725.htm在C语言中,动态内存函数是块重要的知识点,以往,我们开辟空间都是固定的。数组编译结束后就不能继续给它开......
  • C语言解题||杨氏矩阵
    题目:请编写一个程序,在杨氏矩阵中查找某个数字是否存在。要求:时间复杂度小于O(N);杨氏矩阵 :一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的。代码实现:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<assert.h>structpoint{ intx; inty;......