我在传递指向局部变量的指针时遇到了一些麻烦。当我尝试在printf
中打印main()
语句时,每次都会得到随机数。但是当我从parse函数打印它时,它可以正常工作。我已经尝试过使用指针,但无法弄清楚。
#include <stdio.h>
#include <stdlib.h>
void parse(char record[],int *acct,float *amnt){
char word1[10],word2[10];
sscanf(record,"%s %s",word1,word2);
acct = (int*) malloc(10);
amnt = (float*) malloc(10);
*acct = atoi(word1);
*amnt = atof(word2);
printf("%d,%.1f\n",*acct,*amnt);
}
int main(){
FILE *p = fopen("accounts.ssv","rt");
char record[20];
int acct;
float amnt;
while (fgets(record,20,p)){
parse(record,&acct,&amnt);
printf("%d,acct,amnt);
}
fclose(p);
return 0;
}
accounts.ssv
20 -50.5
10 60.5
20 30.0