[英]C program. files.
我正在處理文件,這在編譯后給了我一個分段錯誤錯誤。 我正在嘗試打開文件並將其保存在向量中。 我也想用動態內存來分配它。
#include "stdio.h"
#include "stdlib.h"
main(){
int n,v[n],i,c,cant;
FILE*archivo;
archivo = fopen("vectores.dat","wb");
if(archivo == NULL)
{
printf("Error while opening");
exit(1);
}
printf("write the number of integers you want to save in the file");
scanf("%d",&cant);
for(i=0;i<cant;i++){
printf("write the number in the position: %d",i+1);
scanf("%d",v[i]);
}
c= fwrite(v,sizeof(int),n,archivo);
if(c<1){
printf("Error while writing");
exit(1);
}
}
這是一個大問題:
int n,v[n],...
首先,聲明變量n
,但不對其進行初始化,然后將v
聲明為n
整數的數組。 問題在於,由於n
未初始化,因此其值是不確定的 ,並且您具有未定義的行為 。
您稍后再次使用n
,但仍無需初始化。
如果您的程序在任何地方都有未定義的行為,則說明該程序的格式錯誤,並且任何代碼都不能被信任。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.