[問題] 讀檔後的動態陣列

看板C_and_CPP (C/C++)作者 (ckp4131025)時間16年前 (2010/03/17 22:21), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
#include <stdio.h> #include <stdlib.h> int main() { int i=0,num[100]={0},size=0; int *arr=NULL; FILE *fp=NULL; fp=fopen("input.txt","r"); if(fp!=NULL) { fscanf(fp,"%d",&num[i]); size=num[0]; arr=(int*) malloc(size*sizeof(int)); //配置記憶體 for(int j = 0; j < size; j++) { arr[j] = 0; } while(!feof(fp)) { fscanf(fp,"%d",&num[i]); ↑↑問題出在這裡,如果我把&num[i]改成&arr[i] 執行檔就會出問題而不能執行 請問到底是甚麼原因呢?? i++; } fclose(fp); //關檔 } else { printf("error"); } free(arr); //刪除記憶體 printf("\n"); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.212.7

03/17 22:46, , 1F
你要確定檔案裡面, 在 size之後一定"只"能有 size 個
03/17 22:46, 1F

03/17 22:47, , 2F
整數, 最後一個整數後面緊接著結束字元, 不然會存取超
03/17 22:47, 2F

03/17 22:48, , 3F
過配置的空間, 最好的方法就是用迴圈限制輸入整數的個
03/17 22:48, 3F

03/17 22:49, , 4F
數, 而不要用feof
03/17 22:49, 4F

03/17 23:55, , 5F
喔喔
03/17 23:55, 5F
文章代碼(AID): #1BeELYTQ (C_and_CPP)
文章代碼(AID): #1BeELYTQ (C_and_CPP)