编写c语言程序遇到一些问题

1.读取文件路径时,是双斜杠,若是是单斜杠,会出现找不到目标文件的状况html

fid = fopen("E:\\my_c\\cloud_detection\\cloud_detection\\cloud\\gray_13.txt", "rb");

2.数组使用前要进行内存分配和初始化,必定要初始化,否则有可能出现读取位置XXX时发生访问冲突的问题数组

labelmap = (int *)malloc(sizeof(int)*height*width);
	memset(labelmap, 0, sizeof(int)*height*width);

3.利用memset进行初始化时,初始化的数目参数是指的一个字节的字数,若是该内存每一个单元占四个字节,则须要乘以四,如2中图所示。另外可参考博客:函数

https://blog.csdn.net/yexiaohhjk/article/details/52717934.net

4.使用malloc memset等函数时,要包含 #include<memrory>指针

5.c语言中读写二进制文件用到的一些函数:code

fopen:打开一个二进制文件htm

FILE* fid;	
	fid = fopen("E:\\my_c\\cloud_detection\\cloud_detection\\cloud\\gray_13.txt", "rb");
	if (fid == NULL)
		exit(1);

fseek:将文件指针放到一个指定的位置blog

int fseek(FILE *fid, long offset, int fromwhere);

fseek(fid, 0, SEEK_END);//将文件指针定移动到文件末尾
fseek(fid,50,SEEK_SET);//将文件指针移到离文件头50个字节的地方

参考博客:https://www.cnblogs.com/xingyunblog/p/3675568.html内存

fread和fwrite分别从二进制文件中读数据或写数据get

  (1)size_t fread ( void * ptr, size_t size, size_t count, FILE * fid );

     其中,ptr:指向保存数据的指针;size:每一个数据类型的大小;count:数据的个数;fid:文件指针

     函数返回读取数据的个数。

  (2)size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * fid );

       其中,ptr:指向保存数据的指针;size:每一个数据类型的大小;count:数据的个数;fid:文件指针

     函数返回写入数据的个数。

参考博客:https://www.cnblogs.com/xudong-bupt/p/3478297.html

ftell:该函数用于获得文件位置指针相对于文件首的偏移字节数

rewind: 将文件位置指针从新指向一个流(数据流/文件)的开头

6.C语言经常使用的头文件介绍

参考博客:https://blog.csdn.net/sinat_23338865/article/details/52150654

7.main函数的正确调用形式:

int main(int argc, char*argv[])
int main()

main函数须要返回int型数据

void main()有的编译器能够经过,有的编译器不能经过。