如何解决如何空终止作为参数传递的指针
所以我有这个函数来读取文件,分配内存,并将文件内容放入缓冲区。不过,我最后总是得到垃圾数据,所以我需要一种方法来终止缓冲区。
#include "GetText.h"
void GetText(const char* filename,char** buffer)
{
FILE* file = fopen(filename,"rb");
long file_lenght;
if(file)
{
fseek(file,SEEK_END);
file_lenght = ftell(file);
rewind(file);
*buffer = (char*) malloc(file_lenght + 1);
fread(*buffer,1,file_lenght,file);
*buffer[file_lenght] = '\0'; //This line crashed program
fclose(file);
}
}
解决方法
由于括号运算符的优先级高于指针取消引用,因此您需要在索引之前取消引用 buffer,如下所示:
(*buffer)[file_lenght] = '\0';
在您的程序中,您还需要确保 malloc 成功。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。