簡體   English   中英

C程序。 文件。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM