這是使用C文件的簡單程序。C:我編的錯誤是什麼?
輸入要輸入文件文本的人員和ID的名稱。
但工作不正常,並很樂意幫助代碼。
我的函數malloc可以嗎?
#include <stdio.h>
#include <stdlib.h>
void person();
void main(){
person();
}
void person(){
FILE *file;
char *str;
int i,id;
file=fopen("personid.txt","w");
if(!file)
{
puts("Error");
exit(1);
}
str=(char*)malloc(sizeof(char*));
for(i=0; i<5; i++)
{
puts("Enter name:");
gets(str);
puts("Enter you ID:");
scanf("%d",&id);
fprintf(file,"%s - %9d\n",str,id);
}
free(str);
fclose(file);
}
你能否定義「不能正常工作」?它不會編譯?它運行緩慢嗎?它是段故障嗎?它是否打印出錯誤的數據?它是否是皮膚貓?除非你告訴我們,否則我們無法知曉。 – Kitsune 2012-02-07 23:39:19
你只分配足夠的空間來存儲'char'的指針,這對於名字來說是不夠的。 – porges 2012-02-07 23:39:36
您正在分配一個字符串,其大小足以容納3個字符。 – 2012-02-07 23:39:54