这是我的代码:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct Computer
{
char * model;
char * assembler;
int processorInt;
};
int main()
{
Computer comp;
char* model;
char* assembler;
int processorInt;
cin>>model;
cin>>assembler;
cin>>processor int;
comp.model = model;
comp.assembler = assembler;
comp.processorInt = processorInt;
return 0;
}
//如果我这样做,它可以工作,但是如果我以另一种方式这样做,它会给出分段错误
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct Computer
{
char * model;
char * assembler;
int processorInt;
};
void setValues()
{
Computer comp;
char* model;
char* assembler;
int processorInt;
cin>>model;
cin>>assembler;
cin>>processor int;
comp.model = model;
comp.assembler = assembler;
comp.processorInt = processorInt;
}
int main()
{
setValues();
return 0;
}
那么是什么原因呢?
我的目标是创建一个结构数组,我可以在其中保存有关每台“计算机”的一些信息,然后可以编辑任何结构,然后通过procesorInt 对整个数组进行排序。但我什至不能创建一个正常的可编辑结构。