将文件转换为数组保存在内存中

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *image = fopen("big_face.yuv", "r");
    if(NULL == image)
    {
        printf("open file failed!");
        return 0;
    }
    fseek(image, 0, SEEK_END);
    int nFileLen = ftell(image);
    rewind(image);
    unsigned char* image_dat = (unsigned char*)malloc(nFileLen+1);
    if(NULL == image_dat)
    {
        printf("malloc failed!");
        fclose(image);
        return 0;
    }

    fread(image_dat, sizeof(unsigned char), nFileLen, image);
    image_dat[nFileLen] = '\0';

    fclose(image);

    FILE *f2 = fopen("big_face.c", "w");
    fprintf(f2, "unsigned char big_face[] = {\n");

    for (int i = 0; i < nFileLen + 1; i++)
    {
        fprintf(f2, "0x%x", image_dat[i]);
    }

    fprintf(f2, "\n};\n");
    fclose(f2);

    return 0;
}

原文地址:https://www.cnblogs.com/cristiano-duan/p/12178483.html

时间: 2024-08-01 16:40:52

将文件转换为数组保存在内存中的相关文章

java 实现hex文件转换bin保存至内存中

hex 文件的格式,以文件中某一行字符串(16进制)为例: :10 0830 00 020C5D0224B3FFFFFFFFFFFFFFFFFFFF 7E 10,长度,转换成10进制,也就是16B 大小,这里是32个字符,因为16进制中,2个字符占一个字节,可以不管. 0830,地址,转换成10进制好计算,数据存入字节数组时,可以当做数组下标来使用,方便计算两个地址间的差值. 00,这里表示数据记录,还有其他类型百度便知,可以不管. 02...FF,数据部分.主要就是把这一部分转成bin文件.

PHP excel读取excel文件转换为数组

/*备注:先去下载PHP EXCEL——http://download-codeplex.sec.s-msft.com/Download/Release?ProjectName=phpexcel&DownloadId=809023&FileTime=130382506270130000&Build=20907*/ /* * 将excel转换为数组 by aibhsc * */ require(ROOT_PATH . 'includes/PHPExcel.php');//引入PHP

java动态编译类文件并加载到内存中

如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考笔者的这篇博文-(该博文暂未发布) 所谓动态编译,就是在程序运行时产生java类,并编译成class文件. 一.这里介绍两种动态编译java文件的方式. 第一种:使用Runtime执行javac命令 /** * 编译java类 * 使用Runtime执行javac命令 * @param name 类的全限定包名 不带后缀 例如com.test.Notice 而不要写成com.

数组及其在内存中的分配

1.一维数组 ● 数组概念:数组是储存同一种数据类型多个元素的集合.也可以看成是一个容器.它既可以存储基本数据类型,也可以存储引用数据类型. ● 定义格式1: 数据类型[] 数组名:       格式2: 数据类型 数组名[]; ● 数组的初始化.动态初始化 数组的初始化:数组必须先初始化,然后才能使用,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值 初始化分类: (1)动态初始化:只指定长度,由系统给出初始化值: (2)静态初始化:给出初始化值,由系统决定长度. 注意:这两种方式只能

数组元素在内存中的存储方式

代码: #include <stdio.h> #include <stdlib.h> #define L1 5 #define L2 3 // 数组元素是顺序存储的 int main(void) { int arr1[L1] = { 1, 2, 3, 4, 5, }; // 输出一维数组各个元素的地址 for (size_t i = 0; i < L1; ++i) { printf("%17p", &arr1[i]); } printf("

PHP中simpleXML递归实现XML文件与数组的相互转化(原创)

一.XML文件转换为数组<?php /*******************************************************/ //simpleXML  解析XML文件非常简单 //因为它一次性把XML文件解析成一个大对象 //来个简单的实例 /************************************************ //从文件载入XML文档 //$simxml  =  simplexml_load_file('book.xml'); //prin

VB6之多维数组中元素在内存中的排列情况

1 Private Declare Sub RtlMoveMemory Lib "kernel32" (Destination As Any, Source As Any, ByVal Length As Long) 2 3 4 'code by lichmama from cnblogs.com 5 Private Sub Form_Load() 6 Dim a(2) As Byte 7 Dim b(2, 2) As Byte 8 Dim c(2, 2, 2) As Byte 9 1

Java千百问_06数据结构(016)_引用类型数组在内存中如何储存

点击进入_更多_Java千百问 1.存放基本类型数组在内存中如何储存 java的数组中可以存放引用类型. 存放引用类型的内存分布相比存放基本类型相对复杂.来看一段存储基本类型的程序: 了解什么是数组看这里:java中的数组是什么 了解数组在内存中的储存看这里:java数组如何存储在内存中 public class TestPrimitiveArray { public static void main(String[] args) { //1.定义数组 int[] numbers; //2.分配

Java千百问_06数据结构(014)_java数组如何存储在内存中

点击进入_更多_Java千百问 1.数组的内存空间是何时分配的 java中的数组是用来存储同一种数据类型的数据结构,一旦初始化完成,即所占的空间就已固定下来,初始化的过程就是分配对应内存空间的过程.即使某个元素被清空,但其所在空间仍然保留,因此数组长度将不能被改变. 了解什么是数组看这里:java中的数组是什么 当仅定义一个数组变量(int[] numbers)时,该变量还未指向任何有效的内存,因此不能指定数组的长度,只有对数组进行初始化(为数组元素分配内存空间)后才可以使用. 数组初始化分为静