【发布时间】:2015-05-01 13:52:29
【问题描述】:
由于这些指针变量,我的代码崩溃了。他们怎么了?
main 中的变量声明
char* fname = (first_name_length*sizeof(char));
char* lname = (last_name_length*sizeof(char));
char* pfname = &fname[0];
char* plname = &lname[0];
功能
void get_first_name(FILE* fp, int length, char* pfname){
char c;
int i = 0;
int number_of_conversions;
//char* first_name = malloc(length*sizeof(char));
number_of_conversions = fscanf(fp, "%c", &c);
while (!isspace(c)){
pfname[i] = c;
number_of_conversions = fscanf(fp, "%c", &c);
}
}
【问题讨论】:
-
你想用
fname和lname的声明来完成什么? -
在其中存储名称?为什么在这种情况下这很重要?
-
分配没有意义。您是否要为它们分配内存?
-
是的。为我拥有的字符列表分配足够的内存。我正在尝试将数组从 void 函数转移到 main。
-
在您的
get_first_name函数中,您永远不会在while循环中推进i;你最终会反复写信给pfname[0]。