c - 同时使用 malloc 和 FILE 指针时出错
问题描述
所以,我要做的是初始化一个无符号整数缓冲区,并使用文件指针(FILE *fp)从文件中读取并将文件的内容存储在上述缓冲区中
问题是当我不使用 malloc() 并将缓冲区定义为无符号整数数组时,问题不会发生
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 10000
void main()
{
unsigned int i = 0;
unsigned int *buffer = (unsigned int*)malloc(sizeof(unsigned int)*SIZE);
unsigned int c;
unsigned int length = 0;
FILE *fp = fopen("testfn.c", "r");
if (fp == NULL) {
printf("\nFile not found.\nExiting...");
exit(1);
}
while ((c = fgetc(fp)) != EOF)
{
buffer[i] = c;
++i;
}
length = i;
printf("\nNumber of elements= %d\n", length);
for (i = 0; i <= length; ++i)
printf("%c ", buffer[i]);
fclose(fp);
}
预期的输出是以整数形式存储并打印在屏幕上的文件内容。
我收到的是分段错误并且没有输出。
解决方案
推荐阅读
- events - Solidity 事件 n 发出语法
- lambda - 简单无服务器部署上的“s3:CreateBucket Access Denied”
- c - select() 调用卡住了
- javascript - 为什么获取div背景不返回背景
- python - 如何使用python计算csv文件的分组项目上特定项目的出现
- vb.net - vb.net 无法使用 ms.access 数据库保存图片
- javascript - 如何使用 jquery 根据输入的 val 更改输入字段的背景颜色
- javascript - Google spreadsheet error TypeError: Cannot read property 'filter' of undefined
- wpf - 如何将此椭圆模板添加到我的按钮边框?
- haskell - Haskell:函数内变量的打印类型